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.

-- 
Emmanuel Dreyfus
m...@netbsd.org

Reply via email to