• Chuck Lever's avatar
    NFS: Fix show_nfs_errors macros again · 96650e2e
    Chuck Lever authored
    I noticed that NFS status values stopped working again.
    
    trace_print_symbols_seq() takes an unsigned long. Passing a negative
    errno or negative NFSERR value just confuses it, and since we're
    using C macros here and not static inline functions, all bets are
    off due to implicit type conversion.
    
    Straight-line the calling conventions so that error codes are stored
    in the trace record as positive values in an unsigned long field,
    mapped to symbolic as an unsigned long, and displayed as a negative
    value, to continue to enable grepping on "error=-".
    
    It's often the case that an error value that is positive is a byte
    count but when it's negative, it's an error (e.g. nfs4_write). Fix
    those cases so that the value that is eventually stored in the
    error field is a positive NFS status or errno, or zero.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    96650e2e
nfs4trace.h 50.8 KB