[PATCH v1 v1 6/7] ntfs3: add iomap tracepoints
From: Baolin Liu
Date: Thu Jul 16 2026 - 23:29:44 EST
From: Baolin Liu <liubaolin@xxxxxxxxxx>
Add ntfs3 tracepoints for iomap operations.
This adds trace events for ntfs_iomap_begin() and
ntfs_iomap_end() to help observe iomap mapping activity.
Signed-off-by: Baolin Liu <liubaolin@xxxxxxxxxx>
---
fs/ntfs3/inode.c | 4 +++
include/trace/events/ntfs3.h | 50 ++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
index 2bc4ce2ee8d8..bccb3feb5f3b 100644
--- a/fs/ntfs3/inode.c
+++ b/fs/ntfs3/inode.c
@@ -744,6 +744,8 @@ static int ntfs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
bool new_clst = false;
bool no_da;
bool zero = false;
+
+ trace_ntfs3_iomap_begin(inode, offset, length, flags);
if (unlikely(ntfs3_forced_shutdown(sbi->sb)))
return -EIO;
@@ -882,6 +884,8 @@ static int ntfs_iomap_end(struct inode *inode, loff_t pos, loff_t length,
struct ntfs_inode *ni = ntfs_i(inode);
loff_t endbyte = pos + written;
+ trace_ntfs3_iomap_end(inode, pos, length, written, flags);
+
if ((flags & IOMAP_WRITE) || (flags & IOMAP_ZERO)) {
if (iomap->type == IOMAP_INLINE) {
u32 data_size;
diff --git a/include/trace/events/ntfs3.h b/include/trace/events/ntfs3.h
index 552f991b5257..a846aa61153c 100644
--- a/include/trace/events/ntfs3.h
+++ b/include/trace/events/ntfs3.h
@@ -307,6 +307,56 @@ TRACE_EVENT(ntfs3_attr_data_get_block,
__entry->zero, __entry->no_da)
);
+TRACE_EVENT(ntfs3_iomap_begin,
+ TP_PROTO(struct inode *inode, loff_t offset, loff_t length,
+ unsigned int flags),
+ TP_ARGS(inode, offset, length, flags),
+ TP_STRUCT__entry(
+ __field(dev_t, dev)
+ __field(unsigned long, ino)
+ __field(loff_t, offset)
+ __field(loff_t, length)
+ __field(unsigned int, flags)
+ ),
+ TP_fast_assign(
+ __entry->dev = inode->i_sb->s_dev;
+ __entry->ino = inode->i_ino;
+ __entry->offset = offset;
+ __entry->length = length;
+ __entry->flags = flags;
+ ),
+ TP_printk("dev=(%d,%d) ino=%lu offset=%lld length=%lld flags=0x%x",
+ MAJOR(__entry->dev), MINOR(__entry->dev),
+ __entry->ino, __entry->offset, __entry->length,
+ __entry->flags)
+);
+
+TRACE_EVENT(ntfs3_iomap_end,
+ TP_PROTO(struct inode *inode, loff_t pos, loff_t length,
+ ssize_t written, unsigned int flags),
+ TP_ARGS(inode, pos, length, written, flags),
+ TP_STRUCT__entry(
+ __field(dev_t, dev)
+ __field(unsigned long, ino)
+ __field(loff_t, pos)
+ __field(loff_t, length)
+ __field(ssize_t, written)
+ __field(unsigned int, flags)
+ ),
+ TP_fast_assign(
+ __entry->dev = inode->i_sb->s_dev;
+ __entry->ino = inode->i_ino;
+ __entry->pos = pos;
+ __entry->length = length;
+ __entry->written = written;
+ __entry->flags = flags;
+ ),
+ TP_printk("dev=(%d,%d) ino=%lu pos=%lld length=%lld written=%zd flags=0x%x",
+ MAJOR(__entry->dev), MINOR(__entry->dev),
+ __entry->ino, __entry->pos, __entry->length,
+ __entry->written, __entry->flags)
+);
+
#endif /* _TRACE_NTFS3_H */
#include <trace/define_trace.h>
--
2.51.0