tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Deleted parent node in PUFFS lookup
hi,
> On Fri, Nov 25, 2011 at 01:58:39AM +0000, YAMAMOTO Takashi wrote:
>> puffs_flush(3)?
>
> That will not help, as I already disabel name cache. Here is a deeper
> description of the problem:
>
> I tracked down the bug to this simple operation:
> machine 1: cd /gfs/stale/a && touch test
> machine 2: cd /gfd/stale && cp -r a b && rm -Rf a && mv b a
> machine 1; ls
>
> Things get seriously rotten for machine 1 at that stage. perfused
> dtetects the situation, as the file id changed, but it cannot
> notify the kernel that the vnode it has is stale.
>
> We now have a problem in src/sys/kern/vfs_getcwd.c:getcwd_scandir()
> which gets called with the stale vnode. It performs a GETATTR on
> the deleted node and get the old file id, then it does READDIR that
> yields the new node file id, and of course that does not match.
>
> Therefore getcwd(2) returns NULL, which seems temporarily acceptable
> until machine 1 notice the change, but it never does, which a real
> issue.
what do you expect happens when the machine 1 notices the change?
i expect an error (probably ESTALE) from getcwd().
YAMAMOTO Takashi
>
> --
> Emmanuel Dreyfus
> manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index