patch-2.4.26 linux-2.4.26/fs/nfs/dir.c

Next file: linux-2.4.26/fs/nfs/file.c
Previous file: linux-2.4.26/fs/locks.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.25/fs/nfs/dir.c linux-2.4.26/fs/nfs/dir.c
@@ -545,6 +545,11 @@
 		/* Unhash it, so that ->d_iput() would be called */
 		return 1;
 	}
+	if (!(dentry->d_sb->s_flags & MS_ACTIVE)) {
+		/* Unhash it, so that ancestors of killed async unlink
+		 * files will be cleaned up during umount */
+		return 1;
+	}
 	return 0;
 
 }
@@ -1065,6 +1070,7 @@
 
 	nfs_zap_caches(new_dir);
 	nfs_zap_caches(old_dir);
+	NFS_CACHEINV(old_inode);
 	error = NFS_PROTO(old_dir)->rename(old_dir, &old_dentry->d_name,
 					   new_dir, &new_dentry->d_name);
 out:

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)