pNFS: Modify pnfs_update_layout tracepoints to use layout stateid
Instead of displaying a layout segment pointer in these tracepoints,
let's use the layout stateid, now that Olga gave us a set of tools for
displaying them.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index 238925c..d08d0c8 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -1461,10 +1461,10 @@
loff_t pos,
u64 count,
enum pnfs_iomode iomode,
- struct pnfs_layout_segment *lseg,
+ struct pnfs_layout_hdr *lo,
enum pnfs_update_layout_reason reason
),
- TP_ARGS(inode, pos, count, iomode, lseg, reason),
+ TP_ARGS(inode, pos, count, iomode, lo, reason),
TP_STRUCT__entry(
__field(dev_t, dev)
__field(u64, fileid)
@@ -1472,7 +1472,8 @@
__field(loff_t, pos)
__field(u64, count)
__field(enum pnfs_iomode, iomode)
- __field(struct pnfs_layout_segment *, lseg)
+ __field(int, layoutstateid_seq)
+ __field(u32, layoutstateid_hash)
__field(enum pnfs_update_layout_reason, reason)
),
TP_fast_assign(
@@ -1482,18 +1483,28 @@
__entry->pos = pos;
__entry->count = count;
__entry->iomode = iomode;
- __entry->lseg = lseg;
__entry->reason = reason;
+ if (lo != NULL) {
+ __entry->layoutstateid_seq =
+ be32_to_cpu(lo->plh_stateid.seqid);
+ __entry->layoutstateid_hash =
+ nfs_stateid_hash(&lo->plh_stateid);
+ } else {
+ __entry->layoutstateid_seq = 0;
+ __entry->layoutstateid_hash = 0;
+ }
),
TP_printk(
"fileid=%02x:%02x:%llu fhandle=0x%08x "
- "iomode=%s pos=%llu count=%llu lseg=%p (%s)",
+ "iomode=%s pos=%llu count=%llu "
+ "layoutstateid=%d:0x%08x (%s)",
MAJOR(__entry->dev), MINOR(__entry->dev),
(unsigned long long)__entry->fileid,
__entry->fhandle,
show_pnfs_iomode(__entry->iomode),
(unsigned long long)__entry->pos,
- (unsigned long long)__entry->count, __entry->lseg,
+ (unsigned long long)__entry->count,
+ __entry->layoutstateid_seq, __entry->layoutstateid_hash,
show_pnfs_update_layout_reason(__entry->reason)
)
);