Here is an updated patch for the NFS client bug. It looks fine to
me. Any comments?
Thanks.
-- H.J. Lu (hjl@gnu.org) ---- Index: fs/nfs/inode.c =================================================================== RCS file: /work/cvs/linux/linux/fs/nfs/inode.c,v retrieving revision 1.1.1.26 diff -u -p -r1.1.1.26 inode.c --- fs/nfs/inode.c 1999/05/12 00:49:02 1.1.1.26 +++ fs/nfs/inode.c 1999/07/20 15:56:10 @@ -727,7 +731,6 @@ _nfs_revalidate_inode(struct nfs_server inode->i_ino); status = nfs_proc_getattr(server, NFS_FH(dentry), &fattr); if (status) { - int error; u32 *fh; struct nfs_fh fhandle; dfprintk(PAGECACHE, "nfs_revalidate_inode: %s/%s getattr failed, ino=%ld, error=%d\n", @@ -742,16 +745,17 @@ _nfs_revalidate_inode(struct nfs_server fh = (u32 *) NFS_FH(dentry); dfprintk(PAGECACHE, "NFS: bad fh %08x%08x%08x%08x%08x%08x%08x%08x\n", fh[0],fh[1],fh[2],fh[3],fh[4],fh[5],fh[6],fh[7]); - error = nfs_proc_lookup(server, NFS_FH(dentry->d_parent), + status = nfs_proc_lookup(server, NFS_FH(dentry->d_parent), dentry->d_name.name, &fhandle, &fattr); - if (error) { - dfprintk(PAGECACHE, "NFS: lookup failed, error=%d\n", error); + if (status) { + dfprintk(PAGECACHE, "NFS: lookup failed, error=%d\n", status); goto out; } fh = (u32 *) &fhandle; dfprintk(PAGECACHE, " %08x%08x%08x%08x%08x%08x%08x%08x\n", fh[0],fh[1],fh[2],fh[3],fh[4],fh[5],fh[6],fh[7]); - goto out; + /* Update the file handle in the dentry */ + *((struct nfs_fh *) dentry->d_fsdata) = fhandle; } status = nfs_refresh_inode(inode, &fattr);- 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/