summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4state.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2005-10-18 14:20:13 -0700
committerTrond Myklebust <Trond.Myklebust@netapp.com>2005-10-18 14:20:13 -0700
commit83c9d41e456033000ccfadf535f3098d8739488d (patch)
tree09f5573ba348225bb7eed14c20b3305f49449e06 /fs/nfs/nfs4state.c
parente6dfa553cffcb9740f932311dff42f81d6ac63bb (diff)
downloadlinux-stable-83c9d41e456033000ccfadf535f3098d8739488d.tar.gz
linux-stable-83c9d41e456033000ccfadf535f3098d8739488d.tar.bz2
linux-stable-83c9d41e456033000ccfadf535f3098d8739488d.zip
NFSv4: Remove nfs4_client->cl_sem from close() path
We no longer need to worry about collisions between close() and the state recovery code, since the new close will automatically recheck the file state once it is done waiting on its sequence slot. Ditto for the nfs4_proc_locku() procedure. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r--fs/nfs/nfs4state.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 86c08c165ce7..bb3574361958 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -481,17 +481,15 @@ void nfs4_put_open_state(struct nfs4_state *state)
}
/*
- * Beware! Caller must be holding no references to clp->cl_sem!
+ * Close the current file.
*/
void nfs4_close_state(struct nfs4_state *state, mode_t mode)
{
struct inode *inode = state->inode;
struct nfs4_state_owner *owner = state->owner;
- struct nfs4_client *clp = owner->so_client;
int newstate;
atomic_inc(&owner->so_count);
- down_read(&clp->cl_sem);
/* Protect against nfs4_find_state() */
spin_lock(&inode->i_lock);
if (mode & FMODE_READ)
@@ -523,7 +521,6 @@ void nfs4_close_state(struct nfs4_state *state, mode_t mode)
out:
nfs4_put_open_state(state);
nfs4_put_state_owner(owner);
- up_read(&clp->cl_sem);
}
/*
@@ -704,8 +701,6 @@ void nfs_free_seqid(struct nfs_seqid *seqid)
}
/*
- * Called with clp->cl_sem held.
- *
* Increment the seqid if the OPEN/OPEN_DOWNGRADE/CLOSE succeeded, or
* failed with a seqid incrementing error -
* see comments nfs_fs.h:seqid_mutating_error()
@@ -743,8 +738,6 @@ void nfs_increment_open_seqid(int status, struct nfs_seqid *seqid)
}
/*
- * Called with clp->cl_sem held.
- *
* Increment the seqid if the LOCK/LOCKU succeeded, or
* failed with a seqid incrementing error -
* see comments nfs_fs.h:seqid_mutating_error()