]> err.no Git - linux-2.6/commitdiff
NFSv4: Return any delegations before sillyrenaming the file
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 4 Nov 2005 20:35:02 +0000 (15:35 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 4 Nov 2005 20:35:02 +0000 (15:35 -0500)
 I missed this one... Any form of rename will result in a delegation
 recall, so it is more efficient to return the one we hold before
 trying the rename.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/dir.c

index 8272ed3fc70797160bbfc8e3bf764ba4e099b0b8..7370583b61e59e4fe685cac08ccb143e1f168e56 100644 (file)
@@ -1257,6 +1257,9 @@ dentry->d_parent->d_name.name, dentry->d_name.name);
        sprintf(silly, ".nfs%*.*lx",
                i_inosize, i_inosize, dentry->d_inode->i_ino);
 
+       /* Return delegation in anticipation of the rename */
+       nfs_inode_return_delegation(dentry->d_inode);
+
        sdentry = NULL;
        do {
                char *suffix = silly + slen - countersize;