blob: 75030006898406212726d76626515c1c28a8c497 [file] [edit]
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM ntfs3
#if !defined(_TRACE_NTFS3_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_NTFS3_H
#include <linux/fs.h>
#include <linux/tracepoint.h>
TRACE_EVENT(ntfs3_fill_super,
TP_PROTO(struct super_block *sb, bool ro, u32 cluster_size,
u32 record_size, u32 index_size, int err),
TP_ARGS(sb, ro, cluster_size, record_size, index_size, err),
TP_STRUCT__entry(
__field(dev_t, dev)
__field(u32, cluster_size)
__field(u32, record_size)
__field(u32, index_size)
__field(int, err)
__field(bool, ro)
),
TP_fast_assign(
__entry->dev = sb->s_bdev->bd_dev;
__entry->cluster_size = cluster_size;
__entry->record_size = record_size;
__entry->index_size = index_size;
__entry->err = err;
__entry->ro = ro;
),
TP_printk("dev=(%d,%d) ro=%d cluster=%u record=%u index=%u err=%d",
MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ro,
__entry->cluster_size, __entry->record_size,
__entry->index_size, __entry->err)
);
TRACE_EVENT(ntfs3_init_from_boot,
TP_PROTO(struct super_block *sb, u32 media_sector_size,
u32 boot_sector_size, bool used_alt_boot, int err),
TP_ARGS(sb, media_sector_size, boot_sector_size, used_alt_boot, err),
TP_STRUCT__entry(
__field(dev_t, dev)
__field(u32, media_sector_size)
__field(u32, boot_sector_size)
__field(int, err)
__field(bool, used_alt_boot)
),
TP_fast_assign(
__entry->dev = sb->s_bdev->bd_dev;
__entry->media_sector_size = media_sector_size;
__entry->boot_sector_size = boot_sector_size;
__entry->err = err;
__entry->used_alt_boot = used_alt_boot;
),
TP_printk("dev=(%d,%d) media_sector=%u boot_sector=%u alt_boot=%d err=%d",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->media_sector_size, __entry->boot_sector_size,
__entry->used_alt_boot, __entry->err)
);
TRACE_EVENT(ntfs3_log_replay,
TP_PROTO(struct inode *inode, bool initialized, int err),
TP_ARGS(inode, initialized, err),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(loff_t, size)
__field(dev_t, dev)
__field(int, err)
__field(bool, initialized)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->size = i_size_read(inode);
__entry->dev = inode->i_sb->s_dev;
__entry->err = err;
__entry->initialized = initialized;
),
TP_printk("dev=(%d,%d) ino=%lu size=%lld initialized=%d err=%d",
MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino,
__entry->size, __entry->initialized, __entry->err)
);
TRACE_EVENT(ntfs3_lookup,
TP_PROTO(struct inode *dir, struct dentry *dentry),
TP_ARGS(dir, dentry),
TP_STRUCT__entry(
__field(unsigned long, parent_ino)
__field(dev_t, dev)
__string(name, dentry->d_name.name)
),
TP_fast_assign(
__entry->parent_ino = dir->i_ino;
__entry->dev = dir->i_sb->s_dev;
__assign_str(name);
),
TP_printk("dev=(%d,%d) parent=%lu name=%s",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->parent_ino, __get_str(name))
);
TRACE_EVENT(ntfs3_rename,
TP_PROTO(struct inode *dir, struct dentry *dentry,
struct inode *new_dir, struct dentry *new_dentry),
TP_ARGS(dir, dentry, new_dir, new_dentry),
TP_STRUCT__entry(
__field(unsigned long, dir_ino)
__field(unsigned long, new_dir_ino)
__field(unsigned long, ino)
__field(dev_t, dev)
__string(old_name, dentry->d_name.name)
__string(new_name, new_dentry->d_name.name)
),
TP_fast_assign(
__entry->dir_ino = dir->i_ino;
__entry->new_dir_ino = new_dir->i_ino;
__entry->ino = d_inode(dentry)->i_ino;
__entry->dev = dir->i_sb->s_dev;
__assign_str(old_name);
__assign_str(new_name);
),
TP_printk("dev=(%d,%d) dir=%lu new_dir=%lu ino=%lu old=%s new=%s",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->dir_ino, __entry->new_dir_ino, __entry->ino,
__get_str(old_name), __get_str(new_name))
);
TRACE_EVENT(ntfs3_create_inode,
TP_PROTO(struct inode *dir, struct dentry *dentry),
TP_ARGS(dir, dentry),
TP_STRUCT__entry(
__field(unsigned long, parent_ino)
__field(dev_t, dev)
__string(name, dentry->d_name.name)
),
TP_fast_assign(
__entry->parent_ino = dir->i_ino;
__entry->dev = dir->i_sb->s_dev;
__assign_str(name);
),
TP_printk("dev=(%d,%d) parent=%lu name=%s",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->parent_ino, __get_str(name))
);
TRACE_EVENT(ntfs3_dir_search_u,
TP_PROTO(struct inode *dir, unsigned int name_len),
TP_ARGS(dir, name_len),
TP_STRUCT__entry(
__field(unsigned long, dir_ino)
__field(dev_t, dev)
__field(unsigned int, name_len)
),
TP_fast_assign(
__entry->dir_ino = dir->i_ino;
__entry->dev = dir->i_sb->s_dev;
__entry->name_len = name_len;
),
TP_printk("dev=(%d,%d) dir=%lu name_len=%u",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->dir_ino, __entry->name_len)
);
TRACE_EVENT(ntfs3_indx_find,
TP_PROTO(struct inode *inode, u8 type, size_t key_len),
TP_ARGS(inode, type, key_len),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(size_t, key_len)
__field(dev_t, dev)
__field(u8, type)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->key_len = key_len;
__entry->dev = inode->i_sb->s_dev;
__entry->type = type;
),
TP_printk("dev=(%d,%d) ino=%lu type=%u key_len=%zu",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->type, __entry->key_len)
);
TRACE_EVENT(ntfs3_indx_insert_entry,
TP_PROTO(struct inode *inode, u8 type, u16 key_len, bool undo),
TP_ARGS(inode, type, key_len, undo),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(dev_t, dev)
__field(u16, key_len)
__field(u8, type)
__field(bool, undo)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->dev = inode->i_sb->s_dev;
__entry->key_len = key_len;
__entry->type = type;
__entry->undo = undo;
),
TP_printk("dev=(%d,%d) ino=%lu type=%u key_len=%u undo=%d",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->type, __entry->key_len,
__entry->undo)
);
TRACE_EVENT(ntfs3_indx_delete_entry,
TP_PROTO(struct inode *inode, u8 type, u32 key_len),
TP_ARGS(inode, type, key_len),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(u32, key_len)
__field(dev_t, dev)
__field(u8, type)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->key_len = key_len;
__entry->dev = inode->i_sb->s_dev;
__entry->type = type;
),
TP_printk("dev=(%d,%d) ino=%lu type=%u key_len=%u",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->type, __entry->key_len)
);
TRACE_EVENT(ntfs3_attr_allocate_clusters,
TP_PROTO(struct super_block *sb, u64 vcn, u64 lcn, u64 len, u32 opt),
TP_ARGS(sb, vcn, lcn, len, opt),
TP_STRUCT__entry(
__field(u64, vcn)
__field(u64, lcn)
__field(u64, len)
__field(dev_t, dev)
__field(u32, opt)
),
TP_fast_assign(
__entry->vcn = vcn;
__entry->lcn = lcn;
__entry->len = len;
__entry->dev = sb->s_dev;
__entry->opt = opt;
),
TP_printk("dev=(%d,%d) vcn=%llu lcn=%llu len=%llu opt=0x%x",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->vcn, __entry->lcn, __entry->len, __entry->opt)
);
TRACE_EVENT(ntfs3_attr_set_size_ex,
TP_PROTO(struct inode *inode, u32 type, u64 old_size, u64 new_size,
bool keep_prealloc, bool no_da),
TP_ARGS(inode, type, old_size, new_size, keep_prealloc, no_da),
TP_STRUCT__entry(
__field(u64, old_size)
__field(u64, new_size)
__field(unsigned long, ino)
__field(dev_t, dev)
__field(u32, type)
__field(bool, keep_prealloc)
__field(bool, no_da)
),
TP_fast_assign(
__entry->old_size = old_size;
__entry->new_size = new_size;
__entry->ino = inode->i_ino;
__entry->dev = inode->i_sb->s_dev;
__entry->type = type;
__entry->keep_prealloc = keep_prealloc;
__entry->no_da = no_da;
),
TP_printk("dev=(%d,%d) ino=%lu type=0x%x old_size=%llu new_size=%llu keep_prealloc=%d no_da=%d",
MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino,
__entry->type, __entry->old_size, __entry->new_size,
__entry->keep_prealloc, __entry->no_da)
);
TRACE_EVENT(ntfs3_attr_data_get_block,
TP_PROTO(struct inode *inode, u64 vcn, u64 clen, bool *new,
bool zero, bool no_da),
TP_ARGS(inode, vcn, clen, new, zero, no_da),
TP_STRUCT__entry(
__field(u64, vcn)
__field(u64, clen)
__field(unsigned long, ino)
__field(dev_t, dev)
__field(bool, create)
__field(bool, zero)
__field(bool, no_da)
),
TP_fast_assign(
__entry->vcn = vcn;
__entry->clen = clen;
__entry->ino = inode->i_ino;
__entry->dev = inode->i_sb->s_dev;
__entry->create = !!new;
__entry->zero = zero;
__entry->no_da = no_da;
),
TP_printk("dev=(%d,%d) ino=%lu vcn=%llu clen=%llu create=%d zero=%d no_da=%d",
MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino,
__entry->vcn, __entry->clen, __entry->create,
__entry->zero, __entry->no_da)
);
TRACE_EVENT(ntfs3_iomap_begin,
TP_PROTO(struct inode *inode, loff_t offset, loff_t length,
unsigned int flags),
TP_ARGS(inode, offset, length, flags),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(loff_t, offset)
__field(loff_t, length)
__field(dev_t, dev)
__field(unsigned int, flags)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->offset = offset;
__entry->length = length;
__entry->dev = inode->i_sb->s_dev;
__entry->flags = flags;
),
TP_printk("dev=(%d,%d) ino=%lu offset=%lld length=%lld flags=0x%x",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->offset, __entry->length,
__entry->flags)
);
TRACE_EVENT(ntfs3_iomap_end,
TP_PROTO(struct inode *inode, loff_t pos, loff_t length,
ssize_t written, unsigned int flags),
TP_ARGS(inode, pos, length, written, flags),
TP_STRUCT__entry(
__field(unsigned long, ino)
__field(loff_t, pos)
__field(loff_t, length)
__field(ssize_t, written)
__field(dev_t, dev)
__field(unsigned int, flags)
),
TP_fast_assign(
__entry->ino = inode->i_ino;
__entry->pos = pos;
__entry->length = length;
__entry->written = written;
__entry->dev = inode->i_sb->s_dev;
__entry->flags = flags;
),
TP_printk("dev=(%d,%d) ino=%lu pos=%lld length=%lld written=%zd flags=0x%x",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->pos, __entry->length,
__entry->written, __entry->flags)
);
DECLARE_EVENT_CLASS(ntfs3_file_class,
TP_PROTO(struct kiocb *iocb, struct iov_iter *iter),
TP_ARGS(iocb, iter),
TP_STRUCT__entry(
__field(loff_t, size)
__field(loff_t, offset)
__field(size_t, count)
__field(unsigned long, ino)
__field(dev_t, dev)
),
TP_fast_assign(
__entry->size = i_size_read(file_inode(iocb->ki_filp));
__entry->offset = iocb->ki_pos;
__entry->count = iov_iter_count(iter);
__entry->ino = file_inode(iocb->ki_filp)->i_ino;
__entry->dev = file_inode(iocb->ki_filp)->i_sb->s_dev;
),
TP_printk("dev=(%d,%d) ino=%lu size=%lld pos=%lld bytecount=%zu",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->size, __entry->offset,
__entry->count)
);
DEFINE_EVENT(ntfs3_file_class, ntfs3_file_read_iter,
TP_PROTO(struct kiocb *iocb, struct iov_iter *iter),
TP_ARGS(iocb, iter)
);
DEFINE_EVENT(ntfs3_file_class, ntfs3_file_write_iter,
TP_PROTO(struct kiocb *iocb, struct iov_iter *iter),
TP_ARGS(iocb, iter)
);
#endif /* _TRACE_NTFS3_H */
#include <trace/define_trace.h>