tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Deleted parent node in PUFFS lookup



On Thu, Nov 24, 2011 at 11:39:33AM +0100, Emmanuel Dreyfus wrote:
 > When perfused sends a lookup down to a FUSE filesystem, it may discover
 > that the parent node does not exist anymore. That happens on distributed
 > filesystems when another client deleted the directory. 
 > 
 > Obviously perfused needs to tell the kernel of the situation, so that
 > the parent vnode can be recycled and looked up again. I do not find the
 > way to do that reading kernel PUFFS code. Did I miss something, or is it
 > a missing feature?

When calling lookup, the parent (directory) is supposed to be locked
to prevent exactly this sort of thing from happening. You and/or
perfuse and/or puffs ignore this at your peril, because doing so
violates atomicitiy guarantees and assumptions made by upper-level
code.

However, if it's really disappeared, why not just fail with ENOENT? Or
if you want the whole thing to be restarted from the beginning,
ERESTARTSYS.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index