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