diff options
-rw-r--r-- | fs/nfsd/nfs4state.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 712d7e75e7dd..0f9e8426b2dd 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -5577,11 +5577,9 @@ nfsd4_release_lockowner(struct svc_rqst *rqstp, | |||
5577 | dprintk("nfsd4_release_lockowner clientid: (%08x/%08x):\n", | 5577 | dprintk("nfsd4_release_lockowner clientid: (%08x/%08x):\n", |
5578 | clid->cl_boot, clid->cl_id); | 5578 | clid->cl_boot, clid->cl_id); |
5579 | 5579 | ||
5580 | nfs4_lock_state(); | ||
5581 | |||
5582 | status = lookup_clientid(clid, cstate, nn); | 5580 | status = lookup_clientid(clid, cstate, nn); |
5583 | if (status) | 5581 | if (status) |
5584 | goto out; | 5582 | return status; |
5585 | 5583 | ||
5586 | clp = cstate->clp; | 5584 | clp = cstate->clp; |
5587 | /* Find the matching lock stateowner */ | 5585 | /* Find the matching lock stateowner */ |
@@ -5598,7 +5596,7 @@ nfsd4_release_lockowner(struct svc_rqst *rqstp, | |||
5598 | if (check_for_locks(stp->st_stid.sc_file, lo)) { | 5596 | if (check_for_locks(stp->st_stid.sc_file, lo)) { |
5599 | status = nfserr_locks_held; | 5597 | status = nfserr_locks_held; |
5600 | spin_unlock(&clp->cl_lock); | 5598 | spin_unlock(&clp->cl_lock); |
5601 | goto out; | 5599 | return status; |
5602 | } | 5600 | } |
5603 | } | 5601 | } |
5604 | 5602 | ||
@@ -5608,8 +5606,6 @@ nfsd4_release_lockowner(struct svc_rqst *rqstp, | |||
5608 | spin_unlock(&clp->cl_lock); | 5606 | spin_unlock(&clp->cl_lock); |
5609 | if (lo) | 5607 | if (lo) |
5610 | release_lockowner(lo); | 5608 | release_lockowner(lo); |
5611 | out: | ||
5612 | nfs4_unlock_state(); | ||
5613 | return status; | 5609 | return status; |
5614 | } | 5610 | } |
5615 | 5611 | ||