]> git.karo-electronics.de Git - linux-beck.git/commitdiff
nfsd: Cleanup - Let nfsd4_lookup_stateid() take a cstate argument
authorTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 30 Jun 2014 15:48:43 +0000 (11:48 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 10 Jul 2014 00:55:01 +0000 (20:55 -0400)
The cstate already holds information about the session, and hence
the client id, so it makes more sense to pass that information
rather than the current practice of passing a 'minor version' number.

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

index 29d1ddc098bce406ce45a15593a0e83dd2208b4a..1f8aab8f67bab3f53899a495cee568a39acf62c8 100644 (file)
@@ -3781,12 +3781,14 @@ static __be32 nfsd4_validate_stateid(struct nfs4_client *cl, stateid_t *stateid)
        }
 }
 
-static __be32 nfsd4_lookup_stateid(stateid_t *stateid, unsigned char typemask,
-                                  struct nfs4_stid **s, bool sessions,
-                                  struct nfsd_net *nn)
+static __be32
+nfsd4_lookup_stateid(struct nfsd4_compound_state *cstate,
+                    stateid_t *stateid, unsigned char typemask,
+                    struct nfs4_stid **s, struct nfsd_net *nn)
 {
        struct nfs4_client *cl;
        __be32 status;
+       bool sessions = cstate->minorversion != 0;
 
        if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
                return nfserr_bad_stateid;
@@ -3832,9 +3834,9 @@ nfs4_preprocess_stateid_op(struct net *net, struct nfsd4_compound_state *cstate,
 
        nfs4_lock_state();
 
-       status = nfsd4_lookup_stateid(stateid,
+       status = nfsd4_lookup_stateid(cstate, stateid,
                                NFS4_DELEG_STID|NFS4_OPEN_STID|NFS4_LOCK_STID,
-                               &s, cstate->minorversion, nn);
+                               &s, nn);
        if (status)
                goto out;
        status = check_stateid_generation(stateid, &s->sc_stateid, nfsd4_has_session(cstate));
@@ -4004,8 +4006,7 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
                seqid, STATEID_VAL(stateid));
 
        *stpp = NULL;
-       status = nfsd4_lookup_stateid(stateid, typemask, &s,
-                                     cstate->minorversion, nn);
+       status = nfsd4_lookup_stateid(cstate, stateid, typemask, &s, nn);
        if (status)
                return status;
        stp = openlockstateid(s);
@@ -4229,8 +4230,7 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
                return status;
 
        nfs4_lock_state();
-       status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID, &s,
-                                     cstate->minorversion, nn);
+       status = nfsd4_lookup_stateid(cstate, stateid, NFS4_DELEG_STID, &s, nn);
        if (status)
                goto out;
        dp = delegstateid(s);