Messages in this thread Patch in this message | | | Subject | Re: NFS regression in 2.6 | From | Trond Myklebust <> | Date | 19 Aug 2003 22:37:50 -0700 |
| |
>>>>> " " == Ulrich Drepper <drepper@redhat.com> writes:
> The result is always, 100% of the time, a failure in ftruncate. > The kernel reports ESTALE. This has not been a problem in 2.4 > and not even in 2.6 until <mumble> months ago. And of course > it works with local disks.
There are known bugs in the way we handle readdirplus. That's why it only hits NFSv3. Does the following patch fix it?
Cheers, Trond
diff -u --recursive --new-file linux-2.6.0-test2/fs/nfs/dir.c linux-2.6.0-test2-fix_cto/fs/nfs/dir.c --- linux-2.6.0-test2/fs/nfs/dir.c 2003-06-30 07:19:26.000000000 -0700 +++ linux-2.6.0-test2-fix_cto/fs/nfs/dir.c 2003-08-11 07:54:47.000000000 -0700 @@ -557,7 +557,7 @@ /* Force a full look up iff the parent directory has changed */ if (nfs_check_verifier(dir, dentry)) { if (nfs_lookup_verify_inode(inode, isopen)) - goto out_bad; + goto out_zap_parent; goto out_valid; } @@ -566,7 +566,7 @@ if (memcmp(NFS_FH(inode), &fhandle, sizeof(struct nfs_fh))!= 0) goto out_bad; if (nfs_lookup_verify_inode(inode, isopen)) - goto out_bad; + goto out_zap_parent; goto out_valid_renew; } @@ -587,6 +587,8 @@ unlock_kernel(); dput(parent); return 1; +out_zap_parent: + nfs_zap_caches(dir); out_bad: NFS_CACHEINV(dir); if (inode && S_ISDIR(inode->i_mode)) { - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |