mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 17:12:50 -04:00
nfsd/sunrpc: move rq_cachetype into struct nfsd_thread_local_info
The svc_rqst->rq_cachetype field is only accessed by nfsd. Move it into the nfsd_thread_local_info instead. Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Benjamin Coddington <bcodding@hammerspace.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
@@ -2598,6 +2598,7 @@ nfsd4_opnum_in_range(struct nfsd4_compoundargs *argp, struct nfsd4_op *op)
|
||||
static bool
|
||||
nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
|
||||
{
|
||||
struct nfsd_thread_local_info *ntli = argp->rqstp->rq_private;
|
||||
struct nfsd4_op *op;
|
||||
bool cachethis = false;
|
||||
int auth_slack= argp->rqstp->rq_auth_slack;
|
||||
@@ -2690,7 +2691,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
|
||||
if (argp->minorversion)
|
||||
cachethis = false;
|
||||
svc_reserve_auth(argp->rqstp, max_reply + readbytes);
|
||||
argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE;
|
||||
ntli->ntli_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE;
|
||||
|
||||
argp->splice_ok = nfsd_read_splice_ok(argp->rqstp);
|
||||
if (readcount > 1 || max_reply > PAGE_SIZE - auth_slack)
|
||||
|
||||
@@ -467,10 +467,11 @@ int nfsd_cache_lookup(struct svc_rqst *rqstp, unsigned int start,
|
||||
unsigned int len, struct nfsd_cacherep **cacherep)
|
||||
{
|
||||
struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
|
||||
struct nfsd_thread_local_info *ntli = rqstp->rq_private;
|
||||
struct nfsd_cacherep *rp, *found;
|
||||
__wsum csum;
|
||||
struct nfsd_drc_bucket *b;
|
||||
int type = rqstp->rq_cachetype;
|
||||
int type = ntli->ntli_cachetype;
|
||||
LIST_HEAD(dispose);
|
||||
int rtn = RC_DOIT;
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ extern const struct seq_operations nfs_exports_op;
|
||||
|
||||
struct nfsd_thread_local_info {
|
||||
struct nfs4_client **ntli_lease_breaker;
|
||||
int ntli_cachetype;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -972,6 +972,7 @@ nfsd(void *vrqstp)
|
||||
*/
|
||||
int nfsd_dispatch(struct svc_rqst *rqstp)
|
||||
{
|
||||
struct nfsd_thread_local_info *ntli = rqstp->rq_private;
|
||||
const struct svc_procedure *proc = rqstp->rq_procinfo;
|
||||
__be32 *statp = rqstp->rq_accept_statp;
|
||||
struct nfsd_cacherep *rp;
|
||||
@@ -982,7 +983,7 @@ int nfsd_dispatch(struct svc_rqst *rqstp)
|
||||
* Give the xdr decoder a chance to change this if it wants
|
||||
* (necessary in the NFSv4.0 compound case)
|
||||
*/
|
||||
rqstp->rq_cachetype = proc->pc_cachetype;
|
||||
ntli->ntli_cachetype = proc->pc_cachetype;
|
||||
|
||||
/*
|
||||
* ->pc_decode advances the argument stream past the NFS
|
||||
@@ -1027,7 +1028,7 @@ int nfsd_dispatch(struct svc_rqst *rqstp)
|
||||
*/
|
||||
smp_store_release(&rqstp->rq_status_counter, rqstp->rq_status_counter + 1);
|
||||
|
||||
nfsd_cache_update(rqstp, rp, rqstp->rq_cachetype, nfs_reply);
|
||||
nfsd_cache_update(rqstp, rp, ntli->ntli_cachetype, nfs_reply);
|
||||
out_cached_reply:
|
||||
return 1;
|
||||
|
||||
|
||||
@@ -218,7 +218,6 @@ struct svc_rqst {
|
||||
u32 rq_vers; /* program version */
|
||||
u32 rq_proc; /* procedure number */
|
||||
u32 rq_prot; /* IP protocol */
|
||||
int rq_cachetype; /* catering to nfsd */
|
||||
unsigned long rq_flags; /* flags field */
|
||||
ktime_t rq_qtime; /* enqueue time */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user