From: Baolin Liu <[email protected]> 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 <[email protected]> --- 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
