nfsd: Remove nfs4_lock_state(): exchange_id, create/destroy_session()
authorTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 30 Jul 2014 12:27:32 +0000 (08:27 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 5 Aug 2014 14:55:17 +0000 (10:55 -0400)
Also destroy_clientid and bind_conn_to_session.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c

index 5b3452a..e6b27ed 100644 (file)
@@ -2209,7 +2209,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp,
                return nfserr_jukebox;
 
        /* Cases below refer to rfc 5661 section 18.35.4: */
-       nfs4_lock_state();
        spin_lock(&nn->client_lock);
        conf = find_confirmed_client_by_name(&exid->clname, nn);
        if (conf) {
@@ -2288,7 +2287,6 @@ out_copy:
 
 out:
        spin_unlock(&nn->client_lock);
-       nfs4_unlock_state();
        if (new)
                expire_client(new);
        if (unconf)
@@ -2462,7 +2460,6 @@ nfsd4_create_session(struct svc_rqst *rqstp,
        if (!conn)
                goto out_free_session;
 
-       nfs4_lock_state();
        spin_lock(&nn->client_lock);
        unconf = find_unconfirmed_client(&cr_ses->clientid, true, nn);
        conf = find_confirmed_client(&cr_ses->clientid, true, nn);
@@ -2532,13 +2529,11 @@ nfsd4_create_session(struct svc_rqst *rqstp,
        /* init connection and backchannel */
        nfsd4_init_conn(rqstp, conn, new);
        nfsd4_put_session(new);
-       nfs4_unlock_state();
        if (old)
                expire_client(old);
        return status;
 out_free_conn:
        spin_unlock(&nn->client_lock);
-       nfs4_unlock_state();
        free_conn(conn);
        if (old)
                expire_client(old);
@@ -2594,7 +2589,6 @@ __be32 nfsd4_bind_conn_to_session(struct svc_rqst *rqstp,
 
        if (!nfsd4_last_compound_op(rqstp))
                return nfserr_not_only_op;
-       nfs4_lock_state();
        spin_lock(&nn->client_lock);
        session = find_in_sessionid_hashtbl(&bcts->sessionid, net, &status);
        spin_unlock(&nn->client_lock);
@@ -2615,7 +2609,6 @@ __be32 nfsd4_bind_conn_to_session(struct svc_rqst *rqstp,
 out:
        nfsd4_put_session(session);
 out_no_session:
-       nfs4_unlock_state();
        return status;
 }
 
@@ -2637,7 +2630,6 @@ nfsd4_destroy_session(struct svc_rqst *r,
        struct net *net = SVC_NET(r);
        struct nfsd_net *nn = net_generic(net, nfsd_net_id);
 
-       nfs4_lock_state();
        status = nfserr_not_only_op;
        if (nfsd4_compound_in_session(cstate->session, &sessionid->sessionid)) {
                if (!nfsd4_last_compound_op(r))
@@ -2667,7 +2659,6 @@ out_put_session:
 out_client_lock:
        spin_unlock(&nn->client_lock);
 out:
-       nfs4_unlock_state();
        return status;
 }
 
@@ -2870,7 +2861,6 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta
        __be32 status = 0;
        struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
 
-       nfs4_lock_state();
        spin_lock(&nn->client_lock);
        unconf = find_unconfirmed_client(&dc->clientid, true, nn);
        conf = find_confirmed_client(&dc->clientid, true, nn);
@@ -2899,7 +2889,6 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta
        unhash_client_locked(clp);
 out:
        spin_unlock(&nn->client_lock);
-       nfs4_unlock_state();
        if (clp)
                expire_client(clp);
        return status;