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