All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19
@ 2022-04-29 14:53 Chuck Lever
  2022-04-29 14:53 ` [PATCH 1/6] NFSD: Remove dprintk call sites from tail of nfsd4_open() Chuck Lever
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:53 UTC (permalink / raw)
  To: linux-nfs

I've gotten confirmation that the NFSv3 OPEN(CREATE) fixes posted
previously:

https://lore.kernel.org/linux-nfs/20220420192418.GB27805@fieldses.org/T/#t

are effective and so far, have not resulted in any regression. I've
pushed these to my for-next branch.

On top of these I have collected a few related clean-ups and fixes
that were found along the way, posted here for review.

---

Chuck Lever (6):
      NFSD: Remove dprintk call sites from tail of nfsd4_open()
      NFSD: Fix whitespace
      NFSD: Move documenting comment for nfsd4_process_open2()
      NFSD: Trace filecache opens
      NFSD: Clean up the show_nf_flags() macro
      SUNRPC: Use RMW bitops in single-threaded hot paths


 fs/nfsd/filecache.c                      |  5 +-
 fs/nfsd/nfs4proc.c                       | 67 +++++++++++-------------
 fs/nfsd/nfs4state.c                      | 12 +++++
 fs/nfsd/nfs4xdr.c                        |  2 +-
 fs/nfsd/trace.h                          | 34 +++++++++---
 net/sunrpc/auth_gss/svcauth_gss.c        |  4 +-
 net/sunrpc/svc.c                         |  6 +--
 net/sunrpc/svc_xprt.c                    |  2 +-
 net/sunrpc/svcsock.c                     |  8 +--
 net/sunrpc/xprtrdma/svc_rdma_transport.c |  2 +-
 10 files changed, 85 insertions(+), 57 deletions(-)

--
Chuck Lever


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] NFSD: Remove dprintk call sites from tail of nfsd4_open()
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
@ 2022-04-29 14:53 ` Chuck Lever
  2022-04-29 14:53 ` [PATCH 2/6] NFSD: Fix whitespace Chuck Lever
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:53 UTC (permalink / raw)
  To: linux-nfs

Clean up: These relics are not likely to benefit server
administrators.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4proc.c |    4 ----
 1 file changed, 4 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 28bae84d7809..0c5c0a685f02 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -622,13 +622,9 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 			break;
 		case NFS4_OPEN_CLAIM_DELEG_PREV_FH:
              	case NFS4_OPEN_CLAIM_DELEGATE_PREV:
-			dprintk("NFSD: unsupported OPEN claim type %d\n",
-				open->op_claim_type);
 			status = nfserr_notsupp;
 			goto out;
 		default:
-			dprintk("NFSD: Invalid OPEN claim type %d\n",
-				open->op_claim_type);
 			status = nfserr_inval;
 			goto out;
 	}



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] NFSD: Fix whitespace
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
  2022-04-29 14:53 ` [PATCH 1/6] NFSD: Remove dprintk call sites from tail of nfsd4_open() Chuck Lever
@ 2022-04-29 14:53 ` Chuck Lever
  2022-04-29 14:53 ` [PATCH 3/6] NFSD: Move documenting comment for nfsd4_process_open2() Chuck Lever
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:53 UTC (permalink / raw)
  To: linux-nfs

Clean up: Pull case arms back one tab stop to conform every other
switch statement in fs/nfsd/nfs4proc.c.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4proc.c |   50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 0c5c0a685f02..05ec878b005d 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -600,33 +600,33 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 		goto out;
 
 	switch (open->op_claim_type) {
-		case NFS4_OPEN_CLAIM_DELEGATE_CUR:
-		case NFS4_OPEN_CLAIM_NULL:
-			status = do_open_lookup(rqstp, cstate, open, &resfh);
-			if (status)
-				goto out;
-			break;
-		case NFS4_OPEN_CLAIM_PREVIOUS:
-			status = nfs4_check_open_reclaim(cstate->clp);
-			if (status)
-				goto out;
-			open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED;
-			reclaim = true;
-			fallthrough;
-		case NFS4_OPEN_CLAIM_FH:
-		case NFS4_OPEN_CLAIM_DELEG_CUR_FH:
-			status = do_open_fhandle(rqstp, cstate, open);
-			if (status)
-				goto out;
-			resfh = &cstate->current_fh;
-			break;
-		case NFS4_OPEN_CLAIM_DELEG_PREV_FH:
-             	case NFS4_OPEN_CLAIM_DELEGATE_PREV:
-			status = nfserr_notsupp;
+	case NFS4_OPEN_CLAIM_DELEGATE_CUR:
+	case NFS4_OPEN_CLAIM_NULL:
+		status = do_open_lookup(rqstp, cstate, open, &resfh);
+		if (status)
 			goto out;
-		default:
-			status = nfserr_inval;
+		break;
+	case NFS4_OPEN_CLAIM_PREVIOUS:
+		status = nfs4_check_open_reclaim(cstate->clp);
+		if (status)
 			goto out;
+		open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED;
+		reclaim = true;
+		fallthrough;
+	case NFS4_OPEN_CLAIM_FH:
+	case NFS4_OPEN_CLAIM_DELEG_CUR_FH:
+		status = do_open_fhandle(rqstp, cstate, open);
+		if (status)
+			goto out;
+		resfh = &cstate->current_fh;
+		break;
+	case NFS4_OPEN_CLAIM_DELEG_PREV_FH:
+	case NFS4_OPEN_CLAIM_DELEGATE_PREV:
+		status = nfserr_notsupp;
+		goto out;
+	default:
+		status = nfserr_inval;
+		goto out;
 	}
 	/*
 	 * nfsd4_process_open2() does the actual opening of the file.  If



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] NFSD: Move documenting comment for nfsd4_process_open2()
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
  2022-04-29 14:53 ` [PATCH 1/6] NFSD: Remove dprintk call sites from tail of nfsd4_open() Chuck Lever
  2022-04-29 14:53 ` [PATCH 2/6] NFSD: Fix whitespace Chuck Lever
@ 2022-04-29 14:53 ` Chuck Lever
  2022-04-29 14:53 ` [PATCH 4/6] NFSD: Trace filecache opens Chuck Lever
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:53 UTC (permalink / raw)
  To: linux-nfs

Clean up nfsd4_open() by converting a large comment at the only
call site for nfsd4_process_open2() to a kerneldoc comment in
front of that function.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4proc.c  |    6 +-----
 fs/nfsd/nfs4state.c |   12 ++++++++++++
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 05ec878b005d..9dbce52f0f33 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -628,11 +628,7 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 		status = nfserr_inval;
 		goto out;
 	}
-	/*
-	 * nfsd4_process_open2() does the actual opening of the file.  If
-	 * successful, it (1) truncates the file if open->op_truncate was
-	 * set, (2) sets open->op_stateid, (3) sets open->op_delegation.
-	 */
+
 	status = nfsd4_process_open2(rqstp, resfh, open);
 	WARN(status && open->op_created,
 	     "nfsd4_process_open2 failed to open newly-created file! status=%u\n",
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index e7c28ddf2538..899bcf9cd612 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -5332,6 +5332,18 @@ static void nfsd4_deleg_xgrade_none_ext(struct nfsd4_open *open,
 	 */
 }
 
+/**
+ * nfsd4_process_open2 - finish open processing
+ * @rqstp: the RPC transaction being executed
+ * @current_fh: NFSv4 COMPOUND's current filehandle
+ * @open: OPEN arguments
+ *
+ * If successful, (1) truncate the file if open->op_truncate was
+ * set, (2) set open->op_stateid, (3) set open->op_delegation.
+ *
+ * Returns %nfs_ok on success; otherwise an nfs4stat value in
+ * network byte order is returned.
+ */
 __be32
 nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open)
 {



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] NFSD: Trace filecache opens
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
                   ` (2 preceding siblings ...)
  2022-04-29 14:53 ` [PATCH 3/6] NFSD: Move documenting comment for nfsd4_process_open2() Chuck Lever
@ 2022-04-29 14:53 ` Chuck Lever
  2022-04-29 14:54 ` [PATCH 5/6] NFSD: Clean up the show_nf_flags() macro Chuck Lever
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:53 UTC (permalink / raw)
  To: linux-nfs

Instrument calls to nfsd_open_verified() to get a sense of the
filecache hit rate.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/filecache.c |    5 +++--
 fs/nfsd/trace.h     |   28 ++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c
index 24772f246461..a7e3a443a2cb 100644
--- a/fs/nfsd/filecache.c
+++ b/fs/nfsd/filecache.c
@@ -995,10 +995,11 @@ nfsd_do_file_acquire(struct svc_rqst *rqstp, struct svc_fh *fhp,
 
 	nf->nf_mark = nfsd_file_mark_find_or_create(nf);
 	if (nf->nf_mark) {
-		if (open)
+		if (open) {
 			status = nfsd_open_verified(rqstp, fhp, may_flags,
 						    &nf->nf_file);
-		else
+			trace_nfsd_file_open(nf, status);
+		} else
 			status = nfs_ok;
 	} else
 		status = nfserr_jukebox;
diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index 242fa123e0e9..feb6e6f834b6 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -784,6 +784,34 @@ TRACE_EVENT(nfsd_file_acquire,
 			__entry->nf_file, __entry->status)
 );
 
+TRACE_EVENT(nfsd_file_open,
+	TP_PROTO(struct nfsd_file *nf, __be32 status),
+	TP_ARGS(nf, status),
+	TP_STRUCT__entry(
+		__field(unsigned int, nf_hashval)
+		__field(void *, nf_inode)	/* cannot be dereferenced */
+		__field(int, nf_ref)
+		__field(unsigned long, nf_flags)
+		__field(unsigned long, nf_may)
+		__field(void *, nf_file)	/* cannot be dereferenced */
+	),
+	TP_fast_assign(
+		__entry->nf_hashval = nf->nf_hashval;
+		__entry->nf_inode = nf->nf_inode;
+		__entry->nf_ref = refcount_read(&nf->nf_ref);
+		__entry->nf_flags = nf->nf_flags;
+		__entry->nf_may = nf->nf_may;
+		__entry->nf_file = nf->nf_file;
+	),
+	TP_printk("hash=0x%x inode=%p ref=%d flags=%s may=%s file=%p",
+		__entry->nf_hashval,
+		__entry->nf_inode,
+		__entry->nf_ref,
+		show_nf_flags(__entry->nf_flags),
+		show_nfsd_may_flags(__entry->nf_may),
+		__entry->nf_file)
+)
+
 DECLARE_EVENT_CLASS(nfsd_file_search_class,
 	TP_PROTO(struct inode *inode, unsigned int hash, int found),
 	TP_ARGS(inode, hash, found),



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] NFSD: Clean up the show_nf_flags() macro
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
                   ` (3 preceding siblings ...)
  2022-04-29 14:53 ` [PATCH 4/6] NFSD: Trace filecache opens Chuck Lever
@ 2022-04-29 14:54 ` Chuck Lever
  2022-04-29 14:54 ` [PATCH 6/6] SUNRPC: Use RMW bitops in single-threaded hot paths Chuck Lever
  2022-04-29 14:55 ` [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever III
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:54 UTC (permalink / raw)
  To: linux-nfs

The flags are defined using C macros, so TRACE_DEFINE_ENUM is
unnecessary.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/trace.h |    6 ------
 1 file changed, 6 deletions(-)

diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index feb6e6f834b6..a60ead3b227a 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -692,12 +692,6 @@ DEFINE_CLID_EVENT(confirmed_r);
 /*
  * from fs/nfsd/filecache.h
  */
-TRACE_DEFINE_ENUM(NFSD_FILE_HASHED);
-TRACE_DEFINE_ENUM(NFSD_FILE_PENDING);
-TRACE_DEFINE_ENUM(NFSD_FILE_BREAK_READ);
-TRACE_DEFINE_ENUM(NFSD_FILE_BREAK_WRITE);
-TRACE_DEFINE_ENUM(NFSD_FILE_REFERENCED);
-
 #define show_nf_flags(val)						\
 	__print_flags(val, "|",						\
 		{ 1 << NFSD_FILE_HASHED,	"HASHED" },		\



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] SUNRPC: Use RMW bitops in single-threaded hot paths
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
                   ` (4 preceding siblings ...)
  2022-04-29 14:54 ` [PATCH 5/6] NFSD: Clean up the show_nf_flags() macro Chuck Lever
@ 2022-04-29 14:54 ` Chuck Lever
  2022-04-29 14:55 ` [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever III
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2022-04-29 14:54 UTC (permalink / raw)
  To: linux-nfs

I noticed CPU pipeline stalls while using perf.

Once an svc thread is scheduled and executing an RPC, no other
processes will touch svc_rqst::rq_flags. Thus bus-locked atomics are
not needed outside the svc thread scheduler.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4proc.c                       |    7 ++++---
 fs/nfsd/nfs4xdr.c                        |    2 +-
 net/sunrpc/auth_gss/svcauth_gss.c        |    4 ++--
 net/sunrpc/svc.c                         |    6 +++---
 net/sunrpc/svc_xprt.c                    |    2 +-
 net/sunrpc/svcsock.c                     |    8 ++++----
 net/sunrpc/xprtrdma/svc_rdma_transport.c |    2 +-
 7 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 9dbce52f0f33..3895eb52d2b1 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -970,7 +970,7 @@ nfsd4_read(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 	 * the client wants us to do more in this compound:
 	 */
 	if (!nfsd4_last_compound_op(rqstp))
-		clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
+		__clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
 
 	/* check stateid */
 	status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
@@ -2650,11 +2650,12 @@ nfsd4_proc_compound(struct svc_rqst *rqstp)
 	cstate->minorversion = args->minorversion;
 	fh_init(current_fh, NFS4_FHSIZE);
 	fh_init(save_fh, NFS4_FHSIZE);
+
 	/*
 	 * Don't use the deferral mechanism for NFSv4; compounds make it
 	 * too hard to avoid non-idempotency problems.
 	 */
-	clear_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
+	__clear_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
 
 	/*
 	 * According to RFC3010, this takes precedence over all other errors.
@@ -2769,7 +2770,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp)
 out:
 	cstate->status = status;
 	/* Reset deferral mechanism for RPC deferrals */
-	set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
+	__set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
 	return rpc_success;
 }
 
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index da92e7d2ab6a..61b2aae81abb 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2411,7 +2411,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
 	argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE;
 
 	if (readcount > 1 || max_reply > PAGE_SIZE - auth_slack)
-		clear_bit(RQ_SPLICE_OK, &argp->rqstp->rq_flags);
+		__clear_bit(RQ_SPLICE_OK, &argp->rqstp->rq_flags);
 
 	return true;
 }
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
index c2ba9d4cd2c7..bcd74dddbe2d 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -900,7 +900,7 @@ unwrap_integ_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct g
 	 * rejecting the server-computed MIC in this somewhat rare case,
 	 * do not use splice with the GSS integrity service.
 	 */
-	clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
+	__clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
 
 	/* Did we already verify the signature on the original pass through? */
 	if (rqstp->rq_deferred)
@@ -972,7 +972,7 @@ unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gs
 	int pad, remaining_len, offset;
 	u32 rseqno;
 
-	clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
+	__clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
 
 	priv_len = svc_getnl(&buf->head[0]);
 	if (rqstp->rq_deferred) {
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 557004017548..57245c776d17 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -1238,10 +1238,10 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
 		goto err_short_len;
 
 	/* Will be turned off by GSS integrity and privacy services */
-	set_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
+	__set_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
 	/* Will be turned off only when NFSv4 Sessions are used */
-	set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
-	clear_bit(RQ_DROPME, &rqstp->rq_flags);
+	__set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
+	__clear_bit(RQ_DROPME, &rqstp->rq_flags);
 
 	svc_putu32(resv, rqstp->rq_xid);
 
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index f9d9922f1629..a93b7c18e4a0 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -1241,7 +1241,7 @@ static struct cache_deferred_req *svc_defer(struct cache_req *req)
 	trace_svc_defer(rqstp);
 	svc_xprt_get(rqstp->rq_xprt);
 	dr->xprt = rqstp->rq_xprt;
-	set_bit(RQ_DROPME, &rqstp->rq_flags);
+	__set_bit(RQ_DROPME, &rqstp->rq_flags);
 
 	dr->handle.revisit = svc_revisit;
 	return &dr->handle;
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 05452318afec..b3c9740cfd35 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -298,9 +298,9 @@ static void svc_sock_setbufsize(struct svc_sock *svsk, unsigned int nreqs)
 static void svc_sock_secure_port(struct svc_rqst *rqstp)
 {
 	if (svc_port_is_privileged(svc_addr(rqstp)))
-		set_bit(RQ_SECURE, &rqstp->rq_flags);
+		__set_bit(RQ_SECURE, &rqstp->rq_flags);
 	else
-		clear_bit(RQ_SECURE, &rqstp->rq_flags);
+		__clear_bit(RQ_SECURE, &rqstp->rq_flags);
 }
 
 /*
@@ -1008,9 +1008,9 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp)
 	rqstp->rq_xprt_ctxt   = NULL;
 	rqstp->rq_prot	      = IPPROTO_TCP;
 	if (test_bit(XPT_LOCAL, &svsk->sk_xprt.xpt_flags))
-		set_bit(RQ_LOCAL, &rqstp->rq_flags);
+		__set_bit(RQ_LOCAL, &rqstp->rq_flags);
 	else
-		clear_bit(RQ_LOCAL, &rqstp->rq_flags);
+		__clear_bit(RQ_LOCAL, &rqstp->rq_flags);
 
 	p = (__be32 *)rqstp->rq_arg.head[0].iov_base;
 	calldir = p[1];
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 94b20fb47135..199fa012f18a 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -602,7 +602,7 @@ static int svc_rdma_has_wspace(struct svc_xprt *xprt)
 
 static void svc_rdma_secure_port(struct svc_rqst *rqstp)
 {
-	set_bit(RQ_SECURE, &rqstp->rq_flags);
+	__set_bit(RQ_SECURE, &rqstp->rq_flags);
 }
 
 static void svc_rdma_kill_temp_xprt(struct svc_xprt *xprt)



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19
  2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
                   ` (5 preceding siblings ...)
  2022-04-29 14:54 ` [PATCH 6/6] SUNRPC: Use RMW bitops in single-threaded hot paths Chuck Lever
@ 2022-04-29 14:55 ` Chuck Lever III
  6 siblings, 0 replies; 8+ messages in thread
From: Chuck Lever III @ 2022-04-29 14:55 UTC (permalink / raw)
  To: Linux NFS Mailing List



> On Apr 29, 2022, at 10:53 AM, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
> I've gotten confirmation that the NFSv3 OPEN(CREATE) fixes posted
> previously:

Argh. "NFSv4 OPEN(CREATE)".


> https://lore.kernel.org/linux-nfs/20220420192418.GB27805@fieldses.org/T/#t
> 
> are effective and so far, have not resulted in any regression. I've
> pushed these to my for-next branch.
> 
> On top of these I have collected a few related clean-ups and fixes
> that were found along the way, posted here for review.
> 
> ---
> 
> Chuck Lever (6):
>      NFSD: Remove dprintk call sites from tail of nfsd4_open()
>      NFSD: Fix whitespace
>      NFSD: Move documenting comment for nfsd4_process_open2()
>      NFSD: Trace filecache opens
>      NFSD: Clean up the show_nf_flags() macro
>      SUNRPC: Use RMW bitops in single-threaded hot paths
> 
> 
> fs/nfsd/filecache.c                      |  5 +-
> fs/nfsd/nfs4proc.c                       | 67 +++++++++++-------------
> fs/nfsd/nfs4state.c                      | 12 +++++
> fs/nfsd/nfs4xdr.c                        |  2 +-
> fs/nfsd/trace.h                          | 34 +++++++++---
> net/sunrpc/auth_gss/svcauth_gss.c        |  4 +-
> net/sunrpc/svc.c                         |  6 +--
> net/sunrpc/svc_xprt.c                    |  2 +-
> net/sunrpc/svcsock.c                     |  8 +--
> net/sunrpc/xprtrdma/svc_rdma_transport.c |  2 +-
> 10 files changed, 85 insertions(+), 57 deletions(-)
> 
> --
> Chuck Lever
> 

--
Chuck Lever




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-04-29 14:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-29 14:53 [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever
2022-04-29 14:53 ` [PATCH 1/6] NFSD: Remove dprintk call sites from tail of nfsd4_open() Chuck Lever
2022-04-29 14:53 ` [PATCH 2/6] NFSD: Fix whitespace Chuck Lever
2022-04-29 14:53 ` [PATCH 3/6] NFSD: Move documenting comment for nfsd4_process_open2() Chuck Lever
2022-04-29 14:53 ` [PATCH 4/6] NFSD: Trace filecache opens Chuck Lever
2022-04-29 14:54 ` [PATCH 5/6] NFSD: Clean up the show_nf_flags() macro Chuck Lever
2022-04-29 14:54 ` [PATCH 6/6] SUNRPC: Use RMW bitops in single-threaded hot paths Chuck Lever
2022-04-29 14:55 ` [PATCH 0/6] Minor NFSD fixes and clean-ups for 5.19 Chuck Lever III

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.