ext4: add tracepoint in punching hole
authorZheng Liu <wenqing.lz@taobao.com>
Thu, 17 Jan 2013 01:21:26 +0000 (20:21 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 17 Jan 2013 01:21:26 +0000 (20:21 -0500)
This patch adds a tracepoint in ext4_punch_hole.

CC: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/inode.c
include/trace/events/ext4.h

index 93a7e8453a680624f049e5134d0e0ec3dc6fc811..5abf89c100b92d7c701cc86294d0adba06159da4 100644 (file)
@@ -3567,6 +3567,8 @@ int ext4_punch_hole(struct file *file, loff_t offset, loff_t length)
                return -EOPNOTSUPP;
        }
 
+       trace_ext4_punch_hole(inode, offset, length);
+
        return ext4_ext_punch_hole(file, offset, length);
 }
 
index 7e8c36bc708225c0f3eb79c0b33977c1dcb17519..6080ea1380b8cdbfb039a0b2e509732375c56b7c 100644 (file)
@@ -1324,6 +1324,31 @@ TRACE_EVENT(ext4_fallocate_exit,
                  __entry->ret)
 );
 
+TRACE_EVENT(ext4_punch_hole,
+       TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
+
+       TP_ARGS(inode, offset, len),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,  dev                     )
+               __field(        ino_t,  ino                     )
+               __field(        loff_t, offset                  )
+               __field(        loff_t, len                     )
+       ),
+
+       TP_fast_assign(
+               __entry->dev    = inode->i_sb->s_dev;
+               __entry->ino    = inode->i_ino;
+               __entry->offset = offset;
+               __entry->len    = len;
+       ),
+
+       TP_printk("dev %d,%d ino %lu offset %lld len %lld",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 (unsigned long) __entry->ino,
+                 __entry->offset, __entry->len)
+);
+
 TRACE_EVENT(ext4_unlink_enter,
        TP_PROTO(struct inode *parent, struct dentry *dentry),