| From 118b6292195cfb86a9f43cb65610fc6d980c65f4 Mon Sep 17 00:00:00 2001 |
| From: Trond Myklebust <trondmy@gmail.com> |
| Date: Mon, 6 Jan 2020 15:25:06 -0500 |
| Subject: NFS: Fix fix of show_nfs_errors |
| |
| From: Trond Myklebust <trondmy@gmail.com> |
| |
| 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 | 31 ++++++++++++++++--------------- |
| 1 file changed, 16 insertions(+), 15 deletions(-) |
| |
| --- a/fs/nfs/nfs4trace.h |
| +++ b/fs/nfs/nfs4trace.h |
| @@ -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 " |
| @@ -566,7 +567,7 @@ TRACE_EVENT(nfs4_xdr_status, |
| TP_PROTO( |
| const struct xdr_stream *xdr, |
| u32 op, |
| - int error |
| + u32 error |
| ), |
| |
| TP_ARGS(xdr, op, error), |
| @@ -756,7 +757,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 = |
| @@ -821,7 +822,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; |
| @@ -893,7 +894,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; |
| @@ -989,7 +990,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 = |
| @@ -1029,7 +1030,7 @@ DECLARE_EVENT_CLASS(nfs4_test_stateid_ev |
| 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)); |
| @@ -1131,7 +1132,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( |
| @@ -1167,7 +1168,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); |
| ), |
| @@ -1258,7 +1259,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_e |
| __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 = |
| @@ -1314,7 +1315,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( |
| @@ -1361,7 +1362,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_callback_ |
| ), |
| |
| 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); |
| @@ -1418,7 +1419,7 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_c |
| ), |
| |
| 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); |
| @@ -1721,7 +1722,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 = |