Re: NFS problem

Trond Myklebust (trond.myklebust@fys.uio.no)
06 Apr 1999 13:30:00 +0200


alan@lxorguk.ukuu.org.uk (Alan Cox) writes:

> > On Wed, 31 Mar 1999, Alan Cox wrote:
> >
> > > > Mar 31 12:13:02 isflak kernel: nfs_revalidate_inode: //passwd getattr failed, ino=1879154026, error=-116
> > > > Mar 31 12:13:02 isflak kernel: NFS: bad fh 70019d6a002f7202000000000000000000000000000000000000000000000000
> > > > Mar 31 12:13:02 isflak kernel: 70019d68002f7202000000000000000000000000000000000000000000000000
> > >
> > >
> > > One of the machines cached a file handle to a password file the other machine
> > > then renamed and deleted. It should however have revalidated the handle
> > > after a timeout, so after 30 seconds or so life should have become happy
> >
> > It's still not happy after 23 minutes and counting. Do you have a patch?
>
> No. This may take a bit of detective work. The good thing is I can easily
> duplicate it
>

Sorry, I've been way up a mountain with no IP-connection (yes, back in
prehistory...) for over a week, and have probably missed out on the
beginning of this thread. Which kernel is this?

If it's a 2.2.4-ac1 or newer, does the following patch help?

Cheers,
Trond

--- linux-2.2.4-ac1/fs/nfs/dir.c Fri Mar 26 16:25:30 1999
+++ linux/fs/nfs/dir.c Fri Mar 26 16:29:48 1999
@@ -439,9 +439,9 @@
if (fattr.fileid != inode->i_ino)
goto out_bad;

- if (dentry->d_count < 2) {
- /* Filehandle matches? */
- if (memcmp(dentry->d_fsdata, &fhandle, sizeof(struct nfs_fh)))
+ /* Filehandle matches? */
+ if (memcmp(dentry->d_fsdata, &fhandle, sizeof(struct nfs_fh))) {
+ if (dentry->d_count < 2 || nfs_revalidate(dentry))
goto out_bad;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/