diff mbox

Use of uninitialized value $line in pattern match

Message ID 7BF29D14-256C-4C81-A37C-C816441E57C8@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chuck Lever March 5, 2018, 9:06 p.m. UTC
I think I'm seeing a parsing error in v4.16-rc4 scripts/checkpatch.pl:

Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
Use of uninitialized value $line in pattern match (m//) at scripts/checkpatch.pl line 1300.
total: 0 errors, 0 warnings, 69 lines checked

patches-nfsd-rdma-for-4.17/nfsd-compound-trace-points has no obvious style problems and is ready for submission.



nfsd: Trace NFSv4 COMPOUND execution

This helps record the identity and timing of the ops in each NFSv4
COMPOUND, replacing dprintk calls that did much the same thing.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/nfsd/nfs4proc.c |    9 +++------
fs/nfsd/trace.h    |   39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 6 deletions(-)



--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 39016b6..0df37e0 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1722,12 +1722,10 @@  static void svcxdr_init_encode(struct svc_rqst *rqstp,
		goto encode_op;
	}

+	trace_nfsd_compound(rqstp, args->opcnt);
	while (!status && resp->opcnt < args->opcnt) {
		op = &args->ops[resp->opcnt++];

-		dprintk("nfsv4 compound op #%d/%d: %d (%s)\n",
-			resp->opcnt, args->opcnt, op->opnum,
-			nfsd4_op_name(op->opnum));
		/*
		 * The XDR decode routines may have pre-set op->status;
		 * for example, if there is a miscellaneous XDR error
@@ -1801,9 +1799,8 @@  static void svcxdr_init_encode(struct svc_rqst *rqstp,
			status = op->status;
		}

-		dprintk("nfsv4 compound op %p opcnt %d #%d: %d: status %d\n",
-			args->ops, args->opcnt, resp->opcnt, op->opnum,
-			be32_to_cpu(status));
+		trace_nfsd_compound_status(args->opcnt, resp->opcnt, status,
+					   nfsd4_op_name(op->opnum));

		nfsd4_cstate_clear_replay(cstate);
		nfsd4_increment_op_stats(op->opnum);
diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index a8bbd9d..80933e4 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -11,6 +11,45 @@ 
#include <linux/tracepoint.h>
#include "nfsfh.h"

+TRACE_EVENT(nfsd_compound,
+	TP_PROTO(const struct svc_rqst *rqst,
+		 u32 args_opcnt),
+	TP_ARGS(rqst, args_opcnt),
+	TP_STRUCT__entry(
+		__field(u32, xid)
+		__field(u32, args_opcnt)
+	),
+	TP_fast_assign(
+		__entry->xid = be32_to_cpu(rqst->rq_xid);
+		__entry->args_opcnt = args_opcnt;
+	),
+	TP_printk("xid=0x%08x opcnt=%u",
+		__entry->xid, __entry->args_opcnt)
+)
+
+TRACE_EVENT(nfsd_compound_status,
+	TP_PROTO(u32 args_opcnt,
+		 u32 resp_opcnt,
+		 __be32 status,
+		 const char *name),
+	TP_ARGS(args_opcnt, resp_opcnt, status, name),
+	TP_STRUCT__entry(
+		__field(u32, args_opcnt)
+		__field(u32, resp_opcnt)
+		__field(int, status)
+		__string(name, name)
+	),
+	TP_fast_assign(
+		__entry->args_opcnt = args_opcnt;
+		__entry->resp_opcnt = resp_opcnt;
+		__entry->status = be32_to_cpu(status);
+		__assign_str(name, name);
+	),
+	TP_printk("op=%u/%u %s status=%d",
+		__entry->resp_opcnt, __entry->args_opcnt,
+		__get_str(name), __entry->status)
+)
+
DECLARE_EVENT_CLASS(nfsd_io_class,
	TP_PROTO(struct svc_rqst *rqstp,
		 struct svc_fh	*fhp,