All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hou Tao <houtao1@huawei.com>
To: "J. Bruce Fields" <bfields@fieldses.org>,
	Chuck Lever <chuck.lever@oracle.com>
Cc: <linux-nfs@vger.kernel.org>
Subject: [PATCH] nfsd: don't call trace_nfsd_deleg_none() if read delegation is given
Date: Thu, 27 Aug 2020 15:02:37 +0800	[thread overview]
Message-ID: <20200827070237.19942-1-houtao1@huawei.com> (raw)

Don't call trace_nfsd_deleg_none() if read delegation is given,
else two exclusive traces will be printed:

    nfsd_deleg_open: client 5f45b854:e6058001 stateid 00000030:00000001
    nfsd_deleg_none: client 5f45b854:e6058001 stateid 0000002f:00000001

Fix it by calling trace_nfsd_deleg_none() directly in appropriate
places instead of calling it by checking the value of op_delegate_type.

Also remove the unnecessary assignment "status = nfs_ok", because
we can ensure status will be nfs_ok after the call of
nfs4_inc_and_copy_stateid().

Signed-off-by: Hou Tao <houtao1@huawei.com>
---
 fs/nfsd/nfs4state.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index c09a2a4281ec9..2e6376af701ff 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -5131,6 +5131,8 @@ nfs4_open_delegation(struct svc_fh *fh, struct nfsd4_open *open,
 	nfs4_put_stid(&dp->dl_stid);
 	return;
 out_no_deleg:
+	trace_nfsd_deleg_none(&stp->st_stid.sc_stateid);
+
 	open->op_delegate_type = NFS4_OPEN_DELEGATE_NONE;
 	if (open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS &&
 	    open->op_delegate_type != NFS4_OPEN_DELEGATE_NONE) {
@@ -5232,7 +5234,8 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
 		if (open->op_deleg_want & NFS4_SHARE_WANT_NO_DELEG) {
 			open->op_delegate_type = NFS4_OPEN_DELEGATE_NONE_EXT;
 			open->op_why_no_deleg = WND4_NOT_WANTED;
-			goto nodeleg;
+			trace_nfsd_deleg_none(&stp->st_stid.sc_stateid);
+			goto out;
 		}
 	}
 
@@ -5241,9 +5244,6 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
 	* OPEN succeeds even if we fail.
 	*/
 	nfs4_open_delegation(current_fh, open, stp);
-nodeleg:
-	status = nfs_ok;
-	trace_nfsd_deleg_none(&stp->st_stid.sc_stateid);
 out:
 	/* 4.1 client trying to upgrade/downgrade delegation? */
 	if (open->op_delegate_type == NFS4_OPEN_DELEGATE_NONE && dp &&
-- 
2.25.0.4.g0ad7144999


             reply	other threads:[~2020-08-27  6:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-27  7:02 Hou Tao [this message]
2020-08-27 14:43 ` [PATCH] nfsd: don't call trace_nfsd_deleg_none() if read delegation is given Chuck Lever
2020-08-28  2:23   ` Hou Tao
2020-08-28  7:02   ` [PATCH v2] nfsd: rename delegation related tracepoints to make them less confusing Hou Tao
2020-08-28 13:21     ` Chuck Lever
2020-08-29 15:20       ` Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200827070237.19942-1-houtao1@huawei.com \
    --to=houtao1@huawei.com \
    --cc=bfields@fieldses.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.