summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4state.c
diff options
context:
space:
mode:
authorTrond Myklebust2010-07-01 18:49:01 +0200
committerTrond Myklebust2010-07-30 20:46:10 +0200
commitd3c7b7ccc199ee564177ee914c04771d6bc00295 (patch)
treeed5bda669f6ede2ac454bf853577e3c3f818642b /fs/nfs/nfs4state.c
parentNFSv4: Clean up for lockowner XDR encoding (diff)
downloadkernel-qcow2-linux-d3c7b7ccc199ee564177ee914c04771d6bc00295.tar.gz
kernel-qcow2-linux-d3c7b7ccc199ee564177ee914c04771d6bc00295.tar.xz
kernel-qcow2-linux-d3c7b7ccc199ee564177ee914c04771d6bc00295.zip
NFSv4: Add support for the RELEASE_LOCKOWNER operation
This is needed by NFSv4.0 servers in order to keep the number of locking stateids at a manageable level. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r--fs/nfs/nfs4state.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 13e17e32e3e4..13a4f27e7271 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -701,6 +701,8 @@ void nfs4_put_lock_state(struct nfs4_lock_state *lsp)
if (list_empty(&state->lock_states))
clear_bit(LK_STATE_IN_USE, &state->flags);
spin_unlock(&state->state_lock);
+ if (lsp->ls_flags & NFS_LOCK_INITIALIZED)
+ nfs4_release_lockowner(lsp);
nfs4_free_lock_state(lsp);
}