]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
NFS: Fix fix of show_nfs_errors
authorTrond Myklebust <trondmy@gmail.com>
Mon, 6 Jan 2020 20:25:06 +0000 (15:25 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Feb 2020 21:52:59 +0000 (16:52 -0500)
commit 118b6292195cfb86a9f43cb65610fc6d980c65f4 upstream.

Casting a negative value to an unsigned long is not the same as
converting it to its absolute value.

Fixes: 96650e2effa2 ("NFS: Fix show_nfs_errors macros again")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4trace.h

index e60b6fbd5ada1c6b18b2aba07e4aaee2cf4b8591..d405557cb43f1ee32db5f96e32b18509fb1d1ddb 100644 (file)
@@ -352,7 +352,7 @@ DECLARE_EVENT_CLASS(nfs4_clientid_event,
                ),
 
                TP_fast_assign(
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __assign_str(dstaddr, clp->cl_hostname);
                ),
 
@@ -432,7 +432,8 @@ TRACE_EVENT(nfs4_sequence_done,
                        __entry->target_highest_slotid =
                                        res->sr_target_highest_slotid;
                        __entry->status_flags = res->sr_status_flags;
-                       __entry->error = res->sr_status;
+                       __entry->error = res->sr_status < 0 ?
+                                       -res->sr_status : 0;
                ),
                TP_printk(
                        "error=%ld (%s) session=0x%08x slot_nr=%u seq_nr=%u "
@@ -640,7 +641,7 @@ TRACE_EVENT(nfs4_state_mgr_failed,
                ),
 
                TP_fast_assign(
-                       __entry->error = status;
+                       __entry->error = status < 0 ? -status : 0;
                        __entry->state = clp->cl_state;
                        __assign_str(hostname, clp->cl_hostname);
                        __assign_str(section, section);
@@ -659,7 +660,7 @@ TRACE_EVENT(nfs4_xdr_status,
                TP_PROTO(
                        const struct xdr_stream *xdr,
                        u32 op,
-                       int error
+                       u32 error
                ),
 
                TP_ARGS(xdr, op, error),
@@ -849,7 +850,7 @@ TRACE_EVENT(nfs4_close,
                        __entry->fileid = NFS_FILEID(inode);
                        __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
                        __entry->fmode = (__force unsigned int)state->state;
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->stateid_seq =
                                be32_to_cpu(args->stateid.seqid);
                        __entry->stateid_hash =
@@ -914,7 +915,7 @@ DECLARE_EVENT_CLASS(nfs4_lock_event,
                TP_fast_assign(
                        const struct inode *inode = state->inode;
 
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->cmd = cmd;
                        __entry->type = request->fl_type;
                        __entry->start = request->fl_start;
@@ -986,7 +987,7 @@ TRACE_EVENT(nfs4_set_lock,
                TP_fast_assign(
                        const struct inode *inode = state->inode;
 
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->cmd = cmd;
                        __entry->type = request->fl_type;
                        __entry->start = request->fl_start;
@@ -1164,7 +1165,7 @@ TRACE_EVENT(nfs4_delegreturn_exit,
                TP_fast_assign(
                        __entry->dev = res->server->s_dev;
                        __entry->fhandle = nfs_fhandle_hash(args->fhandle);
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->stateid_seq =
                                be32_to_cpu(args->stateid->seqid);
                        __entry->stateid_hash =
@@ -1204,7 +1205,7 @@ DECLARE_EVENT_CLASS(nfs4_test_stateid_event,
                TP_fast_assign(
                        const struct inode *inode = state->inode;
 
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->dev = inode->i_sb->s_dev;
                        __entry->fileid = NFS_FILEID(inode);
                        __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
@@ -1306,7 +1307,7 @@ TRACE_EVENT(nfs4_lookupp,
                TP_fast_assign(
                        __entry->dev = inode->i_sb->s_dev;
                        __entry->ino = NFS_FILEID(inode);
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                ),
 
                TP_printk(
@@ -1342,7 +1343,7 @@ TRACE_EVENT(nfs4_rename,
                        __entry->dev = olddir->i_sb->s_dev;
                        __entry->olddir = NFS_FILEID(olddir);
                        __entry->newdir = NFS_FILEID(newdir);
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __assign_str(oldname, oldname->name);
                        __assign_str(newname, newname->name);
                ),
@@ -1433,7 +1434,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_event,
                        __entry->dev = inode->i_sb->s_dev;
                        __entry->fileid = NFS_FILEID(inode);
                        __entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->stateid_seq =
                                be32_to_cpu(stateid->seqid);
                        __entry->stateid_hash =
@@ -1489,7 +1490,7 @@ DECLARE_EVENT_CLASS(nfs4_getattr_event,
                        __entry->valid = fattr->valid;
                        __entry->fhandle = nfs_fhandle_hash(fhandle);
                        __entry->fileid = (fattr->valid & NFS_ATTR_FATTR_FILEID) ? fattr->fileid : 0;
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                ),
 
                TP_printk(
@@ -1536,7 +1537,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_callback_event,
                ),
 
                TP_fast_assign(
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->fhandle = nfs_fhandle_hash(fhandle);
                        if (!IS_ERR_OR_NULL(inode)) {
                                __entry->fileid = NFS_FILEID(inode);
@@ -1593,7 +1594,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
                ),
 
                TP_fast_assign(
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->fhandle = nfs_fhandle_hash(fhandle);
                        if (!IS_ERR_OR_NULL(inode)) {
                                __entry->fileid = NFS_FILEID(inode);
@@ -1896,7 +1897,7 @@ TRACE_EVENT(nfs4_layoutget,
                        __entry->iomode = args->iomode;
                        __entry->offset = args->offset;
                        __entry->count = args->length;
-                       __entry->error = error;
+                       __entry->error = error < 0 ? -error : 0;
                        __entry->stateid_seq =
                                be32_to_cpu(state->stateid.seqid);
                        __entry->stateid_hash =