ext4: add tracepoint for ext4_forget()
authorTheodore Ts'o <tytso@mit.edu>
Mon, 23 Nov 2009 12:25:08 +0000 (07:25 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 23 Nov 2009 12:25:08 +0000 (07:25 -0500)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/inode.c
include/trace/events/ext4.h

index 554c6798597ca0e3c760ce77d4e5069b2a30aae2..13de1dd751f55e7dc45f6bb6688871a98e92feda 100644 (file)
@@ -89,6 +89,7 @@ int ext4_forget(handle_t *handle, int is_metadata, struct inode *inode,
 
        might_sleep();
 
+       trace_ext4_forget(inode, is_metadata, blocknr);
        BUFFER_TRACE(bh, "enter");
 
        jbd_debug(4, "forgetting bh %p: is_metadata = %d, mode %o, "
index d09550bf3f951ec4a9230f9156a5fd29190b9e13..b390e1fc4a7bc7335b8dc0a85ebcb3a4c7927da2 100644 (file)
@@ -907,6 +907,32 @@ TRACE_EVENT(ext4_mballoc_free,
                  __entry->result_len, __entry->result_logical)
 );
 
+TRACE_EVENT(ext4_forget,
+       TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
+
+       TP_ARGS(inode, is_metadata, block),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,  dev                     )
+               __field(        ino_t,  ino                     )
+               __field(        umode_t, mode                   )
+               __field(        int,    is_metadata             )
+               __field(        __u64,  block                   )
+       ),
+
+       TP_fast_assign(
+               __entry->dev    = inode->i_sb->s_dev;
+               __entry->ino    = inode->i_ino;
+               __entry->mode   = inode->i_mode;
+               __entry->is_metadata = is_metadata;
+               __entry->block  = block;
+       ),
+
+       TP_printk("dev %s ino %lu mode %d is_metadata %d block %llu",
+                 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
+                 __entry->mode, __entry->is_metadata, __entry->block)
+);
+
 #endif /* _TRACE_EXT4_H */
 
 /* This part must be outside protection */