ext4: fix reserved cluster accounting at delayed write time
[sfrench/cifs-2.6.git] / include / trace / events / ext4.h
index 7849b7f8fd9d195af7ef8af39df2a3ae92378faf..6d7a943f849ce2f010348bc4d1b562ecad490e67 100644 (file)
@@ -2512,6 +2512,41 @@ TRACE_EVENT(ext4_es_shrink,
                  __entry->scan_time, __entry->nr_skipped, __entry->retried)
 );
 
+TRACE_EVENT(ext4_es_insert_delayed_block,
+       TP_PROTO(struct inode *inode, struct extent_status *es,
+                bool allocated),
+
+       TP_ARGS(inode, es, allocated),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,          dev             )
+               __field(        ino_t,          ino             )
+               __field(        ext4_lblk_t,    lblk            )
+               __field(        ext4_lblk_t,    len             )
+               __field(        ext4_fsblk_t,   pblk            )
+               __field(        char,           status          )
+               __field(        bool,           allocated       )
+       ),
+
+       TP_fast_assign(
+               __entry->dev            = inode->i_sb->s_dev;
+               __entry->ino            = inode->i_ino;
+               __entry->lblk           = es->es_lblk;
+               __entry->len            = es->es_len;
+               __entry->pblk           = ext4_es_pblock(es);
+               __entry->status         = ext4_es_status(es);
+               __entry->allocated      = allocated;
+       ),
+
+       TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s "
+                 "allocated %d",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 (unsigned long) __entry->ino,
+                 __entry->lblk, __entry->len,
+                 __entry->pblk, show_extent_status(__entry->status),
+                 __entry->allocated)
+);
+
 /* fsmap traces */
 DECLARE_EVENT_CLASS(ext4_fsmap_class,
        TP_PROTO(struct super_block *sb, u32 keydev, u32 agno, u64 bno, u64 len,