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 > m...@netbsd.org