nfsd: Don't unlock the state while it's not locked
In the procedure of CREATE_SESSION, the state is locked after alloc_conn_from_crses(). If the allocation fails, the function goes to "out_free_session", and then "out" where there is an unlock function. Signed-off-by: Yanchuan Nian <ycnian@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
74b70dded3
commit
266533c6df
1 changed files with 2 additions and 1 deletions
|
@ -1844,11 +1844,12 @@ nfsd4_create_session(struct svc_rqst *rqstp,
|
||||||
|
|
||||||
/* cache solo and embedded create sessions under the state lock */
|
/* cache solo and embedded create sessions under the state lock */
|
||||||
nfsd4_cache_create_session(cr_ses, cs_slot, status);
|
nfsd4_cache_create_session(cr_ses, cs_slot, status);
|
||||||
out:
|
|
||||||
nfs4_unlock_state();
|
nfs4_unlock_state();
|
||||||
|
out:
|
||||||
dprintk("%s returns %d\n", __func__, ntohl(status));
|
dprintk("%s returns %d\n", __func__, ntohl(status));
|
||||||
return status;
|
return status;
|
||||||
out_free_conn:
|
out_free_conn:
|
||||||
|
nfs4_unlock_state();
|
||||||
free_conn(conn);
|
free_conn(conn);
|
||||||
out_free_session:
|
out_free_session:
|
||||||
__free_session(new);
|
__free_session(new);
|
||||||
|
|
Loading…
Add table
Reference in a new issue