nfsd/localio: fix nfsd_file tracepoints to handle NULL rqstp
Otherwise nfsd_file_acquire, nfsd_file_insert_err, and
nfsd_file_cons_err will hit a NULL pointer when they are enabled and
LOCALIO used.
Example trace output (note xid is 0x0 and LOCALIO flag set):
nfsd_file_acquire: xid=0x0 inode=0000000069a1b2e7
may_flags=WRITE|LOCALIO ref=1 nf_flags=HASHED|GC nf_may=WRITE
nf_file=0000000070123234 status=0
Fixes: c63f0e48fe
("nfsd: add nfsd_file_acquire_local()")
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
This commit is contained in:
parent
009b15b574
commit
76f5af9952
@ -1113,7 +1113,7 @@ TRACE_EVENT(nfsd_file_acquire,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->xid = be32_to_cpu(rqstp->rq_xid);
|
||||
__entry->xid = rqstp ? be32_to_cpu(rqstp->rq_xid) : 0;
|
||||
__entry->inode = inode;
|
||||
__entry->may_flags = may_flags;
|
||||
__entry->nf_ref = nf ? refcount_read(&nf->nf_ref) : 0;
|
||||
@ -1147,7 +1147,7 @@ TRACE_EVENT(nfsd_file_insert_err,
|
||||
__field(long, error)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->xid = be32_to_cpu(rqstp->rq_xid);
|
||||
__entry->xid = rqstp ? be32_to_cpu(rqstp->rq_xid) : 0;
|
||||
__entry->inode = inode;
|
||||
__entry->may_flags = may_flags;
|
||||
__entry->error = error;
|
||||
@ -1177,7 +1177,7 @@ TRACE_EVENT(nfsd_file_cons_err,
|
||||
__field(const void *, nf_file)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->xid = be32_to_cpu(rqstp->rq_xid);
|
||||
__entry->xid = rqstp ? be32_to_cpu(rqstp->rq_xid) : 0;
|
||||
__entry->inode = inode;
|
||||
__entry->may_flags = may_flags;
|
||||
__entry->nf_ref = refcount_read(&nf->nf_ref);
|
||||
|
Loading…
Reference in New Issue
Block a user