patch-2.4.0-test8 linux/fs/nfs/dir.c

Next file: linux/fs/nfs/nfs3proc.c
Previous file: linux/fs/nfs/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test7/linux/fs/nfs/dir.c linux/fs/nfs/dir.c
@@ -606,16 +606,8 @@
 static void nfs_dentry_iput(struct dentry *dentry, struct inode *inode)
 {
 	if (dentry->d_flags & DCACHE_NFSFS_RENAMED) {
-		struct dentry *dir = dentry->d_parent;
-		struct inode *dir_i = dir->d_inode;
-		int error;
-		
 		lock_kernel();
-		dir = dentry->d_parent;
-		dir_i = dir->d_inode;
-		nfs_zap_caches(dir_i);
-		NFS_CACHEINV(inode);
-		error = NFS_PROTO(dir_i)->remove(dir, &dentry->d_name);
+		nfs_complete_unlink(dentry);
 		unlock_kernel();
 	}
 	iput(inode);
@@ -868,7 +860,7 @@
 	if (!error) {
 		nfs_renew_times(dentry);
 		d_move(dentry, sdentry);
-		dentry->d_flags |= DCACHE_NFSFS_RENAMED;
+		error = nfs_async_unlink(dentry);
  		/* If we return 0 we don't unlink */
 	}
 	dput(sdentry);

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