NFS: Ensure that we eject stale inodes as soon as possible
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 29 Jan 2008 00:43:19 +0000 (19:43 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 Jan 2008 07:05:22 +0000 (02:05 -0500)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/dir.c

index 06f26d40b4fe480c008b37f5eabbd7ae7c4d0d0c..32c666c612a198c4e3a46b6a4f8c6e55259fc61d 100644 (file)
@@ -826,6 +826,10 @@ static int nfs_dentry_delete(struct dentry *dentry)
                dentry->d_parent->d_name.name, dentry->d_name.name,
                dentry->d_flags);
 
+       /* Unhash any dentry with a stale inode */
+       if (dentry->d_inode != NULL && NFS_STALE(dentry->d_inode))
+               return 1;
+
        if (dentry->d_flags & DCACHE_NFSFS_RENAMED) {
                /* Unhash it, so that ->d_iput() would be called */
                return 1;