Commit 266533c6 authored by Yanchuan Nian's avatar Yanchuan Nian Committed by J. Bruce Fields

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: default avatarYanchuan Nian <ycnian@gmail.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 74b70dde
...@@ -1844,11 +1844,12 @@ nfsd4_create_session(struct svc_rqst *rqstp, ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment