f2fs: support iflag change given the mask
[linux-2.6-microblaze.git] / fs / xfs / xfs_trace.h
index 5a263ae..808ae33 100644 (file)
@@ -37,6 +37,7 @@ struct xfs_trans_res;
 struct xfs_inobt_rec_incore;
 union xfs_btree_ptr;
 struct xfs_dqtrx;
+struct xfs_eofblocks;
 
 #define XFS_ATTR_FILTER_FLAGS \
        { XFS_ATTR_ROOT,        "ROOT" }, \
@@ -154,10 +155,8 @@ DEFINE_PERAG_REF_EVENT(xfs_perag_get_tag);
 DEFINE_PERAG_REF_EVENT(xfs_perag_put);
 DEFINE_PERAG_REF_EVENT(xfs_perag_set_reclaim);
 DEFINE_PERAG_REF_EVENT(xfs_perag_clear_reclaim);
-DEFINE_PERAG_REF_EVENT(xfs_perag_set_eofblocks);
-DEFINE_PERAG_REF_EVENT(xfs_perag_clear_eofblocks);
-DEFINE_PERAG_REF_EVENT(xfs_perag_set_cowblocks);
-DEFINE_PERAG_REF_EVENT(xfs_perag_clear_cowblocks);
+DEFINE_PERAG_REF_EVENT(xfs_perag_set_blockgc);
+DEFINE_PERAG_REF_EVENT(xfs_perag_clear_blockgc);
 
 DECLARE_EVENT_CLASS(xfs_ag_class,
        TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno),
@@ -358,7 +357,7 @@ DEFINE_BUF_EVENT(xfs_buf_get_uncached);
 DEFINE_BUF_EVENT(xfs_buf_item_relse);
 DEFINE_BUF_EVENT(xfs_buf_iodone_async);
 DEFINE_BUF_EVENT(xfs_buf_error_relse);
-DEFINE_BUF_EVENT(xfs_buf_wait_buftarg);
+DEFINE_BUF_EVENT(xfs_buf_drain_buftarg);
 DEFINE_BUF_EVENT(xfs_trans_read_buf_shut);
 
 /* not really buffer traces, but the buf provides useful information */
@@ -1287,8 +1286,8 @@ TRACE_EVENT(xfs_log_assign_tail_lsn,
 )
 
 DECLARE_EVENT_CLASS(xfs_file_class,
-       TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset),
-       TP_ARGS(ip, count, offset),
+       TP_PROTO(struct kiocb *iocb, struct iov_iter *iter),
+       TP_ARGS(iocb, iter),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_ino_t, ino)
@@ -1297,11 +1296,11 @@ DECLARE_EVENT_CLASS(xfs_file_class,
                __field(size_t, count)
        ),
        TP_fast_assign(
-               __entry->dev = VFS_I(ip)->i_sb->s_dev;
-               __entry->ino = ip->i_ino;
-               __entry->size = ip->i_d.di_size;
-               __entry->offset = offset;
-               __entry->count = count;
+               __entry->dev = file_inode(iocb->ki_filp)->i_sb->s_dev;
+               __entry->ino = XFS_I(file_inode(iocb->ki_filp))->i_ino;
+               __entry->size = XFS_I(file_inode(iocb->ki_filp))->i_disk_size;
+               __entry->offset = iocb->ki_pos;
+               __entry->count = iov_iter_count(iter);
        ),
        TP_printk("dev %d:%d ino 0x%llx size 0x%llx offset 0x%llx count 0x%zx",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
@@ -1313,14 +1312,16 @@ DECLARE_EVENT_CLASS(xfs_file_class,
 
 #define DEFINE_RW_EVENT(name)          \
 DEFINE_EVENT(xfs_file_class, name,     \
-       TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset),    \
-       TP_ARGS(ip, count, offset))
+       TP_PROTO(struct kiocb *iocb, struct iov_iter *iter),            \
+       TP_ARGS(iocb, iter))
 DEFINE_RW_EVENT(xfs_file_buffered_read);
 DEFINE_RW_EVENT(xfs_file_direct_read);
 DEFINE_RW_EVENT(xfs_file_dax_read);
 DEFINE_RW_EVENT(xfs_file_buffered_write);
 DEFINE_RW_EVENT(xfs_file_direct_write);
 DEFINE_RW_EVENT(xfs_file_dax_write);
+DEFINE_RW_EVENT(xfs_reflink_bounce_dio_write);
+
 
 DECLARE_EVENT_CLASS(xfs_imap_class,
        TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count,
@@ -1340,7 +1341,7 @@ DECLARE_EVENT_CLASS(xfs_imap_class,
        TP_fast_assign(
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
-               __entry->size = ip->i_d.di_size;
+               __entry->size = ip->i_disk_size;
                __entry->offset = offset;
                __entry->count = count;
                __entry->whichfork = whichfork;
@@ -1386,7 +1387,7 @@ DECLARE_EVENT_CLASS(xfs_simple_io_class,
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
                __entry->isize = VFS_I(ip)->i_size;
-               __entry->disize = ip->i_d.di_size;
+               __entry->disize = ip->i_disk_size;
                __entry->offset = offset;
                __entry->count = count;
        ),
@@ -1424,7 +1425,7 @@ DECLARE_EVENT_CLASS(xfs_itrunc_class,
        TP_fast_assign(
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
-               __entry->size = ip->i_d.di_size;
+               __entry->size = ip->i_disk_size;
                __entry->new_size = new_size;
        ),
        TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx",
@@ -1454,7 +1455,7 @@ TRACE_EVENT(xfs_pagecache_inval,
        TP_fast_assign(
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
-               __entry->size = ip->i_d.di_size;
+               __entry->size = ip->i_disk_size;
                __entry->start = start;
                __entry->finish = finish;
        ),
@@ -1482,7 +1483,7 @@ TRACE_EVENT(xfs_bunmap,
        TP_fast_assign(
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->ino = ip->i_ino;
-               __entry->size = ip->i_d.di_size;
+               __entry->size = ip->i_disk_size;
                __entry->bno = bno;
                __entry->len = len;
                __entry->caller_ip = caller_ip;
@@ -3144,12 +3145,12 @@ DECLARE_EVENT_CLASS(xfs_double_io_class,
                __entry->dev = VFS_I(src)->i_sb->s_dev;
                __entry->src_ino = src->i_ino;
                __entry->src_isize = VFS_I(src)->i_size;
-               __entry->src_disize = src->i_d.di_size;
+               __entry->src_disize = src->i_disk_size;
                __entry->src_offset = soffset;
                __entry->len = len;
                __entry->dest_ino = dest->i_ino;
                __entry->dest_isize = VFS_I(dest)->i_size;
-               __entry->dest_disize = dest->i_d.di_size;
+               __entry->dest_disize = dest->i_disk_size;
                __entry->dest_offset = doffset;
        ),
        TP_printk("dev %d:%d count %zd "
@@ -3294,8 +3295,6 @@ DEFINE_INODE_IREC_EVENT(xfs_reflink_cow_found);
 DEFINE_INODE_IREC_EVENT(xfs_reflink_cow_enospc);
 DEFINE_INODE_IREC_EVENT(xfs_reflink_convert_cow);
 
-DEFINE_SIMPLE_IO_EVENT(xfs_reflink_bounce_dio_write);
-
 DEFINE_SIMPLE_IO_EVENT(xfs_reflink_cancel_cow_range);
 DEFINE_SIMPLE_IO_EVENT(xfs_reflink_end_cow);
 DEFINE_INODE_IREC_EVENT(xfs_reflink_cow_remap);
@@ -3888,6 +3887,47 @@ DEFINE_EVENT(xfs_timestamp_range_class, name, \
 DEFINE_TIMESTAMP_RANGE_EVENT(xfs_inode_timestamp_range);
 DEFINE_TIMESTAMP_RANGE_EVENT(xfs_quota_expiry_range);
 
+DECLARE_EVENT_CLASS(xfs_eofblocks_class,
+       TP_PROTO(struct xfs_mount *mp, struct xfs_eofblocks *eofb,
+                unsigned long caller_ip),
+       TP_ARGS(mp, eofb, caller_ip),
+       TP_STRUCT__entry(
+               __field(dev_t, dev)
+               __field(__u32, flags)
+               __field(uint32_t, uid)
+               __field(uint32_t, gid)
+               __field(prid_t, prid)
+               __field(__u64, min_file_size)
+               __field(unsigned long, caller_ip)
+       ),
+       TP_fast_assign(
+               __entry->dev = mp->m_super->s_dev;
+               __entry->flags = eofb ? eofb->eof_flags : 0;
+               __entry->uid = eofb ? from_kuid(mp->m_super->s_user_ns,
+                                               eofb->eof_uid) : 0;
+               __entry->gid = eofb ? from_kgid(mp->m_super->s_user_ns,
+                                               eofb->eof_gid) : 0;
+               __entry->prid = eofb ? eofb->eof_prid : 0;
+               __entry->min_file_size = eofb ? eofb->eof_min_file_size : 0;
+               __entry->caller_ip = caller_ip;
+       ),
+       TP_printk("dev %d:%d flags 0x%x uid %u gid %u prid %u minsize %llu caller %pS",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 __entry->flags,
+                 __entry->uid,
+                 __entry->gid,
+                 __entry->prid,
+                 __entry->min_file_size,
+                 (char *)__entry->caller_ip)
+);
+#define DEFINE_EOFBLOCKS_EVENT(name)   \
+DEFINE_EVENT(xfs_eofblocks_class, name,        \
+       TP_PROTO(struct xfs_mount *mp, struct xfs_eofblocks *eofb, \
+                unsigned long caller_ip), \
+       TP_ARGS(mp, eofb, caller_ip))
+DEFINE_EOFBLOCKS_EVENT(xfs_ioc_free_eofblocks);
+DEFINE_EOFBLOCKS_EVENT(xfs_blockgc_free_space);
+
 #endif /* _TRACE_XFS_H */
 
 #undef TRACE_INCLUDE_PATH