nfsd4: assume test_stateid always has session
Test_stateid is 4.1-only and only allowed after a sequence operation, so this check is unnecessary. Cc: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
6136d2b409
commit
36279ac10c
|
@ -3256,7 +3256,7 @@ static int check_stateid_generation(stateid_t *in, stateid_t *ref, bool has_sess
|
||||||
return nfserr_old_stateid;
|
return nfserr_old_stateid;
|
||||||
}
|
}
|
||||||
|
|
||||||
__be32 nfs4_validate_stateid(stateid_t *stateid, bool has_session)
|
__be32 nfs4_validate_stateid(stateid_t *stateid)
|
||||||
{
|
{
|
||||||
struct nfs4_stid *s;
|
struct nfs4_stid *s;
|
||||||
struct nfs4_ol_stateid *ols;
|
struct nfs4_ol_stateid *ols;
|
||||||
|
@ -3268,7 +3268,7 @@ __be32 nfs4_validate_stateid(stateid_t *stateid, bool has_session)
|
||||||
s = find_stateid(stateid);
|
s = find_stateid(stateid);
|
||||||
if (!s)
|
if (!s)
|
||||||
return nfserr_stale_stateid;
|
return nfserr_stale_stateid;
|
||||||
status = check_stateid_generation(stateid, &s->sc_stateid, has_session);
|
status = check_stateid_generation(stateid, &s->sc_stateid, 1);
|
||||||
if (status)
|
if (status)
|
||||||
return status;
|
return status;
|
||||||
if (!(s->sc_type & (NFS4_OPEN_STID | NFS4_LOCK_STID)))
|
if (!(s->sc_type & (NFS4_OPEN_STID | NFS4_LOCK_STID)))
|
||||||
|
@ -3374,7 +3374,7 @@ __be32
|
||||||
nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||||
struct nfsd4_test_stateid *test_stateid)
|
struct nfsd4_test_stateid *test_stateid)
|
||||||
{
|
{
|
||||||
test_stateid->ts_has_session = nfsd4_has_session(cstate);
|
/* real work is done during encoding */
|
||||||
return nfs_ok;
|
return nfs_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3302,7 +3302,7 @@ nfsd4_encode_test_stateid(struct nfsd4_compoundres *resp, int nfserr,
|
||||||
nfs4_lock_state();
|
nfs4_lock_state();
|
||||||
for (i = 0; i < test_stateid->ts_num_ids; i++) {
|
for (i = 0; i < test_stateid->ts_num_ids; i++) {
|
||||||
nfsd4_decode_stateid(argp, &si);
|
nfsd4_decode_stateid(argp, &si);
|
||||||
valid = nfs4_validate_stateid(&si, test_stateid->ts_has_session);
|
valid = nfs4_validate_stateid(&si);
|
||||||
RESERVE_SPACE(4);
|
RESERVE_SPACE(4);
|
||||||
*p++ = htonl(valid);
|
*p++ = htonl(valid);
|
||||||
resp->p = p;
|
resp->p = p;
|
||||||
|
|
|
@ -508,7 +508,7 @@ extern void nfsd4_recdir_purge_old(void);
|
||||||
extern int nfsd4_create_clid_dir(struct nfs4_client *clp);
|
extern int nfsd4_create_clid_dir(struct nfs4_client *clp);
|
||||||
extern void nfsd4_remove_clid_dir(struct nfs4_client *clp);
|
extern void nfsd4_remove_clid_dir(struct nfs4_client *clp);
|
||||||
extern void release_session_client(struct nfsd4_session *);
|
extern void release_session_client(struct nfsd4_session *);
|
||||||
extern __be32 nfs4_validate_stateid(stateid_t *, bool);
|
extern __be32 nfs4_validate_stateid(stateid_t *);
|
||||||
extern void nfsd4_purge_closed_stateid(struct nfs4_stateowner *);
|
extern void nfsd4_purge_closed_stateid(struct nfs4_stateowner *);
|
||||||
|
|
||||||
#endif /* NFSD4_STATE_H */
|
#endif /* NFSD4_STATE_H */
|
||||||
|
|
|
@ -343,7 +343,6 @@ struct nfsd4_saved_compoundargs {
|
||||||
|
|
||||||
struct nfsd4_test_stateid {
|
struct nfsd4_test_stateid {
|
||||||
__be32 ts_num_ids;
|
__be32 ts_num_ids;
|
||||||
bool ts_has_session;
|
|
||||||
struct nfsd4_compoundargs *ts_saved_args;
|
struct nfsd4_compoundargs *ts_saved_args;
|
||||||
struct nfsd4_saved_compoundargs ts_savedp;
|
struct nfsd4_saved_compoundargs ts_savedp;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue