Re: [PATCH v3 9/9] nfsd: cstate->session->se_client -> cstate->clp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bruce-

> On Jan 21, 2021, at 5:57 PM, J. Bruce Fields <bfields@xxxxxxxxxx> wrote:
> 
> From: "J. Bruce Fields" <bfields@xxxxxxxxxx>
> 
> I'm not sure why we're writing this out the hard way in so many places.
> 
> Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>

Thanks. v3 of this series has been committed to the for-next branch at

git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

in preparation for the v5.12 merge window.


> ---
> fs/nfsd/nfs4proc.c  |  5 ++---
> fs/nfsd/nfs4state.c | 16 ++++++++--------
> 2 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
> index 567af1f10d2c..f63a12a5278a 100644
> --- a/fs/nfsd/nfs4proc.c
> +++ b/fs/nfsd/nfs4proc.c
> @@ -373,8 +373,7 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> 	 * Before RECLAIM_COMPLETE done, server should deny new lock
> 	 */
> 	if (nfsd4_has_session(cstate) &&
> -	    !test_bit(NFSD4_CLIENT_RECLAIM_COMPLETE,
> -		      &cstate->session->se_client->cl_flags) &&
> +	    !test_bit(NFSD4_CLIENT_RECLAIM_COMPLETE, &cstate->clp->cl_flags) &&
> 	    open->op_claim_type != NFS4_OPEN_CLAIM_PREVIOUS)
> 		return nfserr_grace;
> 
> @@ -1882,7 +1881,7 @@ nfsd4_getdeviceinfo(struct svc_rqst *rqstp,
> 	nfserr = nfs_ok;
> 	if (gdp->gd_maxcount != 0) {
> 		nfserr = ops->proc_getdeviceinfo(exp->ex_path.mnt->mnt_sb,
> -				rqstp, cstate->session->se_client, gdp);
> +				rqstp, cstate->clp, gdp);
> 	}
> 
> 	gdp->gd_notify_types &= ops->notify_types;
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 389456937bbe..f554e3480bb1 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -3891,6 +3891,7 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp,
> 		struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
> {
> 	struct nfsd4_reclaim_complete *rc = &u->reclaim_complete;
> +	struct nfs4_client *clp = cstate->clp;
> 	__be32 status = 0;
> 
> 	if (rc->rca_one_fs) {
> @@ -3904,12 +3905,11 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp,
> 	}
> 
> 	status = nfserr_complete_already;
> -	if (test_and_set_bit(NFSD4_CLIENT_RECLAIM_COMPLETE,
> -			     &cstate->session->se_client->cl_flags))
> +	if (test_and_set_bit(NFSD4_CLIENT_RECLAIM_COMPLETE, &clp->cl_flags))
> 		goto out;
> 
> 	status = nfserr_stale_clientid;
> -	if (is_client_expired(cstate->session->se_client))
> +	if (is_client_expired(clp))
> 		/*
> 		 * The following error isn't really legal.
> 		 * But we only get here if the client just explicitly
> @@ -3920,8 +3920,8 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp,
> 		goto out;
> 
> 	status = nfs_ok;
> -	nfsd4_client_record_create(cstate->session->se_client);
> -	inc_reclaim_complete(cstate->session->se_client);
> +	nfsd4_client_record_create(clp);
> +	inc_reclaim_complete(clp);
> out:
> 	return status;
> }
> @@ -5918,7 +5918,7 @@ nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> {
> 	struct nfsd4_test_stateid *test_stateid = &u->test_stateid;
> 	struct nfsd4_test_stateid_id *stateid;
> -	struct nfs4_client *cl = cstate->session->se_client;
> +	struct nfs4_client *cl = cstate->clp;
> 
> 	list_for_each_entry(stateid, &test_stateid->ts_stateid_list, ts_id_list)
> 		stateid->ts_id_status =
> @@ -5964,7 +5964,7 @@ nfsd4_free_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> 	stateid_t *stateid = &free_stateid->fr_stateid;
> 	struct nfs4_stid *s;
> 	struct nfs4_delegation *dp;
> -	struct nfs4_client *cl = cstate->session->se_client;
> +	struct nfs4_client *cl = cstate->clp;
> 	__be32 ret = nfserr_bad_stateid;
> 
> 	spin_lock(&cl->cl_lock);
> @@ -6693,7 +6693,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> 		if (nfsd4_has_session(cstate))
> 			/* See rfc 5661 18.10.3: given clientid is ignored: */
> 			memcpy(&lock->lk_new_clientid,
> -				&cstate->session->se_client->cl_clientid,
> +				&cstate->clp->cl_clientid,
> 				sizeof(clientid_t));
> 
> 		/* validate and update open stateid and open seqid */
> -- 
> 2.29.2
> 

--
Chuck Lever







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux