diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-11-04 15:35:02 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-11-04 15:35:02 -0500 |
commit | 34ea818846e6cccdd6e05354ab8c8a6d7e34657a (patch) | |
tree | d00d3d61c03454856c9047afaab3ba60a2e84f32 | |
parent | 2c56617d76fa7b2a709d58abd7ed68889cc88b90 (diff) | |
download | blackbird-op-linux-34ea818846e6cccdd6e05354ab8c8a6d7e34657a.tar.gz blackbird-op-linux-34ea818846e6cccdd6e05354ab8c8a6d7e34657a.zip |
NFSv4: Return any delegations before sillyrenaming the file
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>
-rw-r--r-- | fs/nfs/dir.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 8272ed3fc707..7370583b61e5 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -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; |