ext4: adjust reserved cluster count when removing extents
[sfrench/cifs-2.6.git] / include / trace / events / ext4.h
index 6d7a943f849ce2f010348bc4d1b562ecad490e67..698e0d8a5ca408a41279808529b9b256555c27cb 100644 (file)
@@ -17,6 +17,7 @@ struct mpage_da_data;
 struct ext4_map_blocks;
 struct extent_status;
 struct ext4_fsmap;
+struct partial_cluster;
 
 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
 
@@ -2035,21 +2036,23 @@ TRACE_EVENT(ext4_ext_show_extent,
 );
 
 TRACE_EVENT(ext4_remove_blocks,
-           TP_PROTO(struct inode *inode, struct ext4_extent *ex,
-               ext4_lblk_t from, ext4_fsblk_t to,
-               long long partial_cluster),
+       TP_PROTO(struct inode *inode, struct ext4_extent *ex,
+                ext4_lblk_t from, ext4_fsblk_t to,
+                struct partial_cluster *pc),
 
-       TP_ARGS(inode, ex, from, to, partial_cluster),
+       TP_ARGS(inode, ex, from, to, pc),
 
        TP_STRUCT__entry(
                __field(        dev_t,          dev     )
                __field(        ino_t,          ino     )
                __field(        ext4_lblk_t,    from    )
                __field(        ext4_lblk_t,    to      )
-               __field(        long long,      partial )
                __field(        ext4_fsblk_t,   ee_pblk )
                __field(        ext4_lblk_t,    ee_lblk )
                __field(        unsigned short, ee_len  )
+               __field(        ext4_fsblk_t,   pc_pclu )
+               __field(        ext4_lblk_t,    pc_lblk )
+               __field(        int,            pc_state)
        ),
 
        TP_fast_assign(
@@ -2057,14 +2060,16 @@ TRACE_EVENT(ext4_remove_blocks,
                __entry->ino            = inode->i_ino;
                __entry->from           = from;
                __entry->to             = to;
-               __entry->partial        = partial_cluster;
                __entry->ee_pblk        = ext4_ext_pblock(ex);
                __entry->ee_lblk        = le32_to_cpu(ex->ee_block);
                __entry->ee_len         = ext4_ext_get_actual_len(ex);
+               __entry->pc_pclu        = pc->pclu;
+               __entry->pc_lblk        = pc->lblk;
+               __entry->pc_state       = pc->state;
        ),
 
        TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
-                 "from %u to %u partial_cluster %lld",
+                 "from %u to %u partial [pclu %lld lblk %u state %d]",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  (unsigned long) __entry->ino,
                  (unsigned) __entry->ee_lblk,
@@ -2072,45 +2077,53 @@ TRACE_EVENT(ext4_remove_blocks,
                  (unsigned short) __entry->ee_len,
                  (unsigned) __entry->from,
                  (unsigned) __entry->to,
-                 (long long) __entry->partial)
+                 (long long) __entry->pc_pclu,
+                 (unsigned int) __entry->pc_lblk,
+                 (int) __entry->pc_state)
 );
 
 TRACE_EVENT(ext4_ext_rm_leaf,
        TP_PROTO(struct inode *inode, ext4_lblk_t start,
                 struct ext4_extent *ex,
-                long long partial_cluster),
+                struct partial_cluster *pc),
 
-       TP_ARGS(inode, start, ex, partial_cluster),
+       TP_ARGS(inode, start, ex, pc),
 
        TP_STRUCT__entry(
                __field(        dev_t,          dev     )
                __field(        ino_t,          ino     )
-               __field(        long long,      partial )
                __field(        ext4_lblk_t,    start   )
                __field(        ext4_lblk_t,    ee_lblk )
                __field(        ext4_fsblk_t,   ee_pblk )
                __field(        short,          ee_len  )
+               __field(        ext4_fsblk_t,   pc_pclu )
+               __field(        ext4_lblk_t,    pc_lblk )
+               __field(        int,            pc_state)
        ),
 
        TP_fast_assign(
                __entry->dev            = inode->i_sb->s_dev;
                __entry->ino            = inode->i_ino;
-               __entry->partial        = partial_cluster;
                __entry->start          = start;
                __entry->ee_lblk        = le32_to_cpu(ex->ee_block);
                __entry->ee_pblk        = ext4_ext_pblock(ex);
                __entry->ee_len         = ext4_ext_get_actual_len(ex);
+               __entry->pc_pclu        = pc->pclu;
+               __entry->pc_lblk        = pc->lblk;
+               __entry->pc_state       = pc->state;
        ),
 
        TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
-                 "partial_cluster %lld",
+                 "partial [pclu %lld lblk %u state %d]",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  (unsigned long) __entry->ino,
                  (unsigned) __entry->start,
                  (unsigned) __entry->ee_lblk,
                  (unsigned long long) __entry->ee_pblk,
                  (unsigned short) __entry->ee_len,
-                 (long long) __entry->partial)
+                 (long long) __entry->pc_pclu,
+                 (unsigned int) __entry->pc_lblk,
+                 (int) __entry->pc_state)
 );
 
 TRACE_EVENT(ext4_ext_rm_idx,
@@ -2168,9 +2181,9 @@ TRACE_EVENT(ext4_ext_remove_space,
 
 TRACE_EVENT(ext4_ext_remove_space_done,
        TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
-                int depth, long long partial, __le16 eh_entries),
+                int depth, struct partial_cluster *pc, __le16 eh_entries),
 
-       TP_ARGS(inode, start, end, depth, partial, eh_entries),
+       TP_ARGS(inode, start, end, depth, pc, eh_entries),
 
        TP_STRUCT__entry(
                __field(        dev_t,          dev             )
@@ -2178,7 +2191,9 @@ TRACE_EVENT(ext4_ext_remove_space_done,
                __field(        ext4_lblk_t,    start           )
                __field(        ext4_lblk_t,    end             )
                __field(        int,            depth           )
-               __field(        long long,      partial         )
+               __field(        ext4_fsblk_t,   pc_pclu         )
+               __field(        ext4_lblk_t,    pc_lblk         )
+               __field(        int,            pc_state        )
                __field(        unsigned short, eh_entries      )
        ),
 
@@ -2188,18 +2203,23 @@ TRACE_EVENT(ext4_ext_remove_space_done,
                __entry->start          = start;
                __entry->end            = end;
                __entry->depth          = depth;
-               __entry->partial        = partial;
+               __entry->pc_pclu        = pc->pclu;
+               __entry->pc_lblk        = pc->lblk;
+               __entry->pc_state       = pc->state;
                __entry->eh_entries     = le16_to_cpu(eh_entries);
        ),
 
-       TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld "
+       TP_printk("dev %d,%d ino %lu since %u end %u depth %d "
+                 "partial [pclu %lld lblk %u state %d] "
                  "remaining_entries %u",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  (unsigned long) __entry->ino,
                  (unsigned) __entry->start,
                  (unsigned) __entry->end,
                  __entry->depth,
-                 (long long) __entry->partial,
+                 (long long) __entry->pc_pclu,
+                 (unsigned int) __entry->pc_lblk,
+                 (int) __entry->pc_state,
                  (unsigned short) __entry->eh_entries)
 );