Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
ext3.h File Reference
#include <linux/tracepoint.h>
#include <trace/define_trace.h>

Go to the source code of this file.

Macros

#define TRACE_SYSTEM   ext3
 
#define _TRACE_EXT3_H
 

Functions

 TRACE_EVENT (ext3_free_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(umode_t, mode) __field(uid_t, uid) __field(gid_t, gid) __field(blkcnt_t, blocks)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->mode=inode->i_mode;__entry->uid=i_uid_read(inode);__entry->gid=i_gid_read(inode);__entry->blocks=inode->i_blocks;), TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->uid, __entry->gid,(unsigned long) __entry->blocks))
 
 TRACE_EVENT (ext3_request_inode, TP_PROTO(struct inode *dir, int mode), TP_ARGS(dir, mode), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, dir) __field(umode_t, mode)), TP_fast_assign(__entry->dev=dir->i_sb->s_dev;__entry->dir=dir->i_ino;__entry->mode=mode;), TP_printk("dev %d,%d dir %lu mode 0%o", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->dir, __entry->mode))
 
 TRACE_EVENT (ext3_allocate_inode, TP_PROTO(struct inode *inode, struct inode *dir, int mode), TP_ARGS(inode, dir, mode), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(ino_t, dir) __field(umode_t, mode)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->dir=dir->i_ino;__entry->mode=mode;), TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->dir, __entry->mode))
 
 TRACE_EVENT (ext3_evict_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(int, nlink)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->nlink=inode->i_nlink;), TP_printk("dev %d,%d ino %lu nlink %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->nlink))
 
 TRACE_EVENT (ext3_drop_inode, TP_PROTO(struct inode *inode, int drop), TP_ARGS(inode, drop), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(int, drop)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->drop=drop;), TP_printk("dev %d,%d ino %lu drop %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->drop))
 
 TRACE_EVENT (ext3_mark_inode_dirty, TP_PROTO(struct inode *inode, unsigned long IP), TP_ARGS(inode, IP), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, ip)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->ip=IP;), TP_printk("dev %d,%d ino %lu caller %pF", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(void *) __entry->ip))
 
 TRACE_EVENT (ext3_write_begin, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int flags), TP_ARGS(inode, pos, len, flags), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(loff_t, pos) __field(unsigned int, len) __field(unsigned int, flags)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->pos=pos;__entry->len=len;__entry->flags=flags;), TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->flags))
 
 DECLARE_EVENT_CLASS (ext3__write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), TP_ARGS(inode, pos, len, copied), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(loff_t, pos) __field(unsigned int, len) __field(unsigned int, copied)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->pos=pos;__entry->len=len;__entry->copied=copied;), TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->copied))
 
 DEFINE_EVENT (ext3__write_end, ext3_ordered_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied),)
 
 DEFINE_EVENT (ext3__write_end, ext3_writeback_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied),)
 
 DEFINE_EVENT (ext3__write_end, ext3_journalled_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied),)
 
 DECLARE_EVENT_CLASS (ext3__page_op, TP_PROTO(struct page *page), TP_ARGS(page), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(pgoff_t, index)), TP_fast_assign(__entry->index=page->index;__entry->ino=page->mapping->host->i_ino;__entry->dev=page->mapping->host->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu page_index %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->index))
 
 DEFINE_EVENT (ext3__page_op, ext3_ordered_writepage, TP_PROTO(struct page *page),)
 
 DEFINE_EVENT (ext3__page_op, ext3_writeback_writepage, TP_PROTO(struct page *page),)
 
 DEFINE_EVENT (ext3__page_op, ext3_journalled_writepage, TP_PROTO(struct page *page),)
 
 DEFINE_EVENT (ext3__page_op, ext3_readpage, TP_PROTO(struct page *page),)
 
 DEFINE_EVENT (ext3__page_op, ext3_releasepage, TP_PROTO(struct page *page),)
 
 TRACE_EVENT (ext3_invalidatepage, TP_PROTO(struct page *page, unsigned long offset), TP_ARGS(page, offset), TP_STRUCT__entry(__field(pgoff_t, index) __field(unsigned long, offset) __field(ino_t, ino) __field(dev_t, dev)), TP_fast_assign(__entry->index=page->index;__entry->offset=offset;__entry->ino=page->mapping->host->i_ino;__entry->dev=page->mapping->host->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->index, __entry->offset))
 
 TRACE_EVENT (ext3_discard_blocks, TP_PROTO(struct super_block *sb, unsigned long blk, unsigned long count), TP_ARGS(sb, blk, count), TP_STRUCT__entry(__field(dev_t, dev) __field(unsigned long, blk) __field(unsigned long, count)), TP_fast_assign(__entry->dev=sb->s_dev;__entry->blk=blk;__entry->count=count;), TP_printk("dev %d,%d blk %lu count %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->blk, __entry->count))
 
 TRACE_EVENT (ext3_request_blocks, TP_PROTO(struct inode *inode, unsigned long goal, unsigned long count), TP_ARGS(inode, goal, count), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, count) __field(unsigned long, goal)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->count=count;__entry->goal=goal;), TP_printk("dev %d,%d ino %lu count %lu goal %lu ", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->count, __entry->goal))
 
 TRACE_EVENT (ext3_allocate_blocks, TP_PROTO(struct inode *inode, unsigned long goal, unsigned long count, unsigned long block), TP_ARGS(inode, goal, count, block), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, block) __field(unsigned long, count) __field(unsigned long, goal)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->block=block;__entry->count=count;__entry->goal=goal;), TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->count, __entry->block, __entry->goal))
 
 TRACE_EVENT (ext3_free_blocks, TP_PROTO(struct inode *inode, unsigned long block, unsigned long count), TP_ARGS(inode, block, count), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(umode_t, mode) __field(unsigned long, block) __field(unsigned long, count)), TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->mode=inode->i_mode;__entry->block=block;__entry->count=count;), TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->block, __entry->count))
 
 TRACE_EVENT (ext3_sync_file_enter, TP_PROTO(struct file *file, int datasync), TP_ARGS(file, datasync), TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(ino_t, parent) __field(int, datasync)), TP_fast_assign(struct dentry *dentry=file->f_path.dentry;__entry->dev=dentry->d_inode->i_sb->s_dev;__entry->ino=dentry->d_inode->i_ino;__entry->datasync=datasync;__entry->parent=dentry->d_parent->d_inode->i_ino;), TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->parent, __entry->datasync))
 
 TRACE_EVENT (ext3_sync_file_exit, TP_PROTO(struct inode *inode, int ret), TP_ARGS(inode, ret), TP_STRUCT__entry(__field(int, ret) __field(ino_t, ino) __field(dev_t, dev)), TP_fast_assign(__entry->ret=ret;__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->ret))
 
 TRACE_EVENT (ext3_sync_fs, TP_PROTO(struct super_block *sb, int wait), TP_ARGS(sb, wait), TP_STRUCT__entry(__field(dev_t, dev) __field(int, wait)), TP_fast_assign(__entry->dev=sb->s_dev;__entry->wait=wait;), TP_printk("dev %d,%d wait %d", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->wait))
 
 TRACE_EVENT (ext3_rsv_window_add, TP_PROTO(struct super_block *sb, struct ext3_reserve_window_node *rsv_node), TP_ARGS(sb, rsv_node), TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, end) __field(dev_t, dev)), TP_fast_assign(__entry->dev=sb->s_dev;__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;), TP_printk("dev %d,%d start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->start, __entry->end))
 
 TRACE_EVENT (ext3_discard_reservation, TP_PROTO(struct inode *inode, struct ext3_reserve_window_node *rsv_node), TP_ARGS(inode, rsv_node), TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, end) __field(ino_t, ino) __field(dev_t, dev)), TP_fast_assign(__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->start, __entry->end))
 
 TRACE_EVENT (ext3_alloc_new_reservation, TP_PROTO(struct super_block *sb, unsigned long goal), TP_ARGS(sb, goal), TP_STRUCT__entry(__field(dev_t, dev) __field(unsigned long, goal)), TP_fast_assign(__entry->dev=sb->s_dev;__entry->goal=goal;), TP_printk("dev %d,%d goal %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->goal))
 
 TRACE_EVENT (ext3_reserved, TP_PROTO(struct super_block *sb, unsigned long block, struct ext3_reserve_window_node *rsv_node), TP_ARGS(sb, block, rsv_node), TP_STRUCT__entry(__field(unsigned long, block) __field(unsigned long, start) __field(unsigned long, end) __field(dev_t, dev)), TP_fast_assign(__entry->block=block;__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;__entry->dev=sb->s_dev;), TP_printk("dev %d,%d block %lu, start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->block, __entry->start, __entry->end))
 
 TRACE_EVENT (ext3_forget, TP_PROTO(struct inode *inode, int is_metadata, unsigned long 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(unsigned long, 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 %d,%d ino %lu mode 0%o is_metadata %d block %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->is_metadata, __entry->block))
 
 TRACE_EVENT (ext3_read_block_bitmap, TP_PROTO(struct super_block *sb, unsigned int group), TP_ARGS(sb, group), TP_STRUCT__entry(__field(dev_t, dev) __field(__u32, group)), TP_fast_assign(__entry->dev=sb->s_dev;__entry->group=group;), TP_printk("dev %d,%d group %u", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->group))
 
 TRACE_EVENT (ext3_direct_IO_enter, TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), TP_ARGS(inode, offset, len, rw), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(loff_t, pos) __field(unsigned long, len) __field(int, rw)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->pos=offset;__entry->len=len;__entry->rw=rw;), TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->rw))
 
 TRACE_EVENT (ext3_direct_IO_exit, TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw, int ret), TP_ARGS(inode, offset, len, rw, ret), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(loff_t, pos) __field(unsigned long, len) __field(int, rw) __field(int, ret)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->pos=offset;__entry->len=len;__entry->rw=rw;__entry->ret=ret;), TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->rw, __entry->ret))
 
 TRACE_EVENT (ext3_unlink_enter, TP_PROTO(struct inode *parent, struct dentry *dentry), TP_ARGS(parent, dentry), TP_STRUCT__entry(__field(ino_t, parent) __field(ino_t, ino) __field(loff_t, size) __field(dev_t, dev)), TP_fast_assign(__entry->parent=parent->i_ino;__entry->ino=dentry->d_inode->i_ino;__entry->size=dentry->d_inode->i_size;__entry->dev=dentry->d_inode->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu size %lld parent %ld", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->size,(unsigned long) __entry->parent))
 
 TRACE_EVENT (ext3_unlink_exit, TP_PROTO(struct dentry *dentry, int ret), TP_ARGS(dentry, ret), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(int, ret)), TP_fast_assign(__entry->ino=dentry->d_inode->i_ino;__entry->dev=dentry->d_inode->i_sb->s_dev;__entry->ret=ret;), TP_printk("dev %d,%d ino %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->ret))
 
 DECLARE_EVENT_CLASS (ext3__truncate, TP_PROTO(struct inode *inode), TP_ARGS(inode), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(blkcnt_t, blocks)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->blocks=inode->i_blocks;), TP_printk("dev %d,%d ino %lu blocks %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->blocks))
 
 DEFINE_EVENT (ext3__truncate, ext3_truncate_enter, TP_PROTO(struct inode *inode),)
 
 DEFINE_EVENT (ext3__truncate, ext3_truncate_exit, TP_PROTO(struct inode *inode),)
 
 TRACE_EVENT (ext3_get_blocks_enter, TP_PROTO(struct inode *inode, unsigned long lblk, unsigned long len, int create), TP_ARGS(inode, lblk, len, create), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(unsigned long, lblk) __field(unsigned long, len) __field(int, create)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->lblk=lblk;__entry->len=len;__entry->create=create;), TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->lblk, __entry->len, __entry->create))
 
 TRACE_EVENT (ext3_get_blocks_exit, TP_PROTO(struct inode *inode, unsigned long lblk, unsigned long pblk, unsigned long len, int ret), TP_ARGS(inode, lblk, pblk, len, ret), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(unsigned long, lblk) __field(unsigned long, pblk) __field(unsigned long, len) __field(int, ret)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->lblk=lblk;__entry->pblk=pblk;__entry->len=len;__entry->ret=ret;), TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->lblk, __entry->pblk, __entry->len, __entry->ret))
 
 TRACE_EVENT (ext3_load_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev)), TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;), TP_printk("dev %d,%d ino %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino))
 

Macro Definition Documentation

#define _TRACE_EXT3_H

Definition at line 5 of file ext3.h.

#define TRACE_SYSTEM   ext3

Definition at line 2 of file ext3.h.

Function Documentation

DECLARE_EVENT_CLASS ( ext3__write_end  ,
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied)  ,
TP_ARGS(inode, pos, len, copied)  ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(loff_t, pos) __field(unsigned int, len) __field(unsigned int, copied))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->pos=pos;__entry->len=len;__entry->copied=copied;)  ,
TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->copied)   
)
DECLARE_EVENT_CLASS ( ext3__page_op  ,
TP_PROTO(struct page *page ,
TP_ARGS(page ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(pgoff_t, index))  ,
TP_fast_assign(__entry->index=page->index;__entry->ino=page->mapping->host->i_ino;__entry->dev=page->mapping->host->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu page_index %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->index  
)
DECLARE_EVENT_CLASS ( ext3__truncate  ,
TP_PROTO(struct inode *inode ,
TP_ARGS(inode ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(blkcnt_t, blocks))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->blocks=inode->i_blocks;)  ,
TP_printk("dev %d,%d ino %lu blocks %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->blocks)   
)
DEFINE_EVENT ( ext3__write_end  ,
ext3_ordered_write_end  ,
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied)   
)
DEFINE_EVENT ( ext3__write_end  ,
ext3_writeback_write_end  ,
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied)   
)
DEFINE_EVENT ( ext3__write_end  ,
ext3_journalled_write_end  ,
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied)   
)
DEFINE_EVENT ( ext3__page_op  ,
ext3_ordered_writepage  ,
TP_PROTO(struct page *page  
)
DEFINE_EVENT ( ext3__page_op  ,
ext3_writeback_writepage  ,
TP_PROTO(struct page *page  
)
DEFINE_EVENT ( ext3__page_op  ,
ext3_journalled_writepage  ,
TP_PROTO(struct page *page  
)
DEFINE_EVENT ( ext3__page_op  ,
ext3_readpage  ,
TP_PROTO(struct page *page  
)
DEFINE_EVENT ( ext3__page_op  ,
ext3_releasepage  ,
TP_PROTO(struct page *page  
)
DEFINE_EVENT ( ext3__truncate  ,
ext3_truncate_enter  ,
TP_PROTO(struct inode *inode  
)
DEFINE_EVENT ( ext3__truncate  ,
ext3_truncate_exit  ,
TP_PROTO(struct inode *inode  
)
TRACE_EVENT ( ext3_free_inode  ,
TP_PROTO(struct inode *inode ,
TP_ARGS(inode ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(umode_t, mode) __field(uid_t, uid) __field(gid_t, gid) __field(blkcnt_t, blocks))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->mode=inode->i_mode;__entry->uid=i_uid_read(inode);__entry->gid=i_gid_read(inode);__entry->blocks=inode->i_blocks;)  ,
TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->uid, __entry->gid,(unsigned long) __entry->blocks)   
)
TRACE_EVENT ( ext3_request_inode  ,
TP_PROTO(struct inode *dir, int mode ,
TP_ARGS(dir, mode ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, dir) __field(umode_t, mode))  ,
TP_fast_assign(__entry->dev=dir->i_sb->s_dev;__entry->dir=dir->i_ino;__entry->mode=mode;)  ,
TP_printk("dev %d,%d dir %lu mode 0%o", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->dir, __entry->mode  
)
TRACE_EVENT ( ext3_allocate_inode  ,
TP_PROTO(struct inode *inode, struct inode *dir, int mode ,
TP_ARGS(inode, dir, mode ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(ino_t, dir) __field(umode_t, mode))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->dir=dir->i_ino;__entry->mode=mode;)  ,
TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->dir, __entry->mode  
)
TRACE_EVENT ( ext3_evict_inode  ,
TP_PROTO(struct inode *inode ,
TP_ARGS(inode ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(int, nlink))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->nlink=inode->i_nlink;)  ,
TP_printk("dev %d,%d ino %lu nlink %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->nlink  
)
TRACE_EVENT ( ext3_drop_inode  ,
TP_PROTO(struct inode *inode, int drop)  ,
TP_ARGS(inode, drop)  ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(int, drop))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->drop=drop;)  ,
TP_printk("dev %d,%d ino %lu drop %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->drop)   
)
TRACE_EVENT ( ext3_mark_inode_dirty  ,
TP_PROTO(struct inode *inode, unsigned long IP ,
TP_ARGS(inode, IP ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, ip))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->ip=IP;)  ,
TP_printk("dev %d,%d ino %lu caller %pF", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(void *) __entry->ip  
)
TRACE_EVENT ( ext3_write_begin  ,
TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int flags ,
TP_ARGS(inode, pos, len, flags ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(loff_t, pos) __field(unsigned int, len) __field(unsigned int, flags))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->pos=pos;__entry->len=len;__entry->flags=flags;)  ,
TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->flags  
)
TRACE_EVENT ( ext3_invalidatepage  ,
TP_PROTO(struct page *page, unsigned long offset ,
TP_ARGS(page, offset ,
TP_STRUCT__entry(__field(pgoff_t, index) __field(unsigned long, offset) __field(ino_t, ino) __field(dev_t, dev))  ,
TP_fast_assign(__entry->index=page->index;__entry->offset=offset;__entry->ino=page->mapping->host->i_ino;__entry->dev=page->mapping->host->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->index, __entry->offset  
)
TRACE_EVENT ( ext3_discard_blocks  ,
TP_PROTO(struct super_block *sb, unsigned long blk, unsigned long count ,
TP_ARGS(sb, blk, count ,
TP_STRUCT__entry(__field(dev_t, dev) __field(unsigned long, blk) __field(unsigned long, count))  ,
TP_fast_assign(__entry->dev=sb->s_dev;__entry->blk=blk;__entry->count=count;)  ,
TP_printk("dev %d,%d blk %lu count %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->blk, __entry->count  
)
TRACE_EVENT ( ext3_request_blocks  ,
TP_PROTO(struct inode *inode, unsigned long goal, unsigned long count ,
TP_ARGS(inode, goal, count ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, count) __field(unsigned long, goal))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->count=count;__entry->goal=goal;)  ,
TP_printk("dev %d,%d ino %lu count %lu goal %lu ", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->count, __entry->goal)   
)
TRACE_EVENT ( ext3_allocate_blocks  ,
TP_PROTO(struct inode *inode, unsigned long goal, unsigned long count, unsigned long block ,
TP_ARGS(inode, goal, count, block ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(unsigned long, block) __field(unsigned long, count) __field(unsigned long, goal))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->block=block;__entry->count=count;__entry->goal=goal;)  ,
TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->count, __entry->block, __entry->goal)   
)
TRACE_EVENT ( ext3_free_blocks  ,
TP_PROTO(struct inode *inode, unsigned long block, unsigned long count ,
TP_ARGS(inode, block, count ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(umode_t, mode) __field(unsigned long, block) __field(unsigned long, count))  ,
TP_fast_assign(__entry->dev=inode->i_sb->s_dev;__entry->ino=inode->i_ino;__entry->mode=inode->i_mode;__entry->block=block;__entry->count=count;)  ,
TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->block, __entry->count  
)
TRACE_EVENT ( ext3_sync_file_enter  ,
TP_PROTO(struct file *file, int datasync)  ,
TP_ARGS(file, datasync)  ,
TP_STRUCT__entry(__field(dev_t, dev) __field(ino_t, ino) __field(ino_t, parent) __field(int, datasync))  ,
TP_fast_assign(struct dentry *dentry=file->f_path.dentry;__entry->dev=dentry->d_inode->i_sb->s_dev;__entry->ino=dentry->d_inode->i_ino;__entry->datasync=datasync;__entry->parent=dentry->d_parent->d_inode->i_ino;)  ,
TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long) __entry->parent, __entry->datasync)   
)
TRACE_EVENT ( ext3_sync_file_exit  ,
TP_PROTO(struct inode *inode, int ret ,
TP_ARGS(inode, ret ,
TP_STRUCT__entry(__field(int, ret) __field(ino_t, ino) __field(dev_t, dev))  ,
TP_fast_assign(__entry->ret=ret;__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->ret  
)
TRACE_EVENT ( ext3_sync_fs  ,
TP_PROTO(struct super_block *sb, int wait ,
TP_ARGS(sb, wait ,
TP_STRUCT__entry(__field(dev_t, dev) __field(int, wait))  ,
TP_fast_assign(__entry->dev=sb->s_dev;__entry->wait=wait;)  ,
TP_printk("dev %d,%d wait %d", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->wait  
)
TRACE_EVENT ( ext3_rsv_window_add  ,
TP_PROTO(struct super_block *sb, struct ext3_reserve_window_node *rsv_node)  ,
TP_ARGS(sb, rsv_node)  ,
TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, end) __field(dev_t, dev))  ,
TP_fast_assign(__entry->dev=sb->s_dev;__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;)  ,
TP_printk("dev %d,%d start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->start, __entry->end  
)
TRACE_EVENT ( ext3_discard_reservation  ,
TP_PROTO(struct inode *inode, struct ext3_reserve_window_node *rsv_node)  ,
TP_ARGS(inode, rsv_node)  ,
TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, end) __field(ino_t, ino) __field(dev_t, dev))  ,
TP_fast_assign(__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->start, __entry->end  
)
TRACE_EVENT ( ext3_alloc_new_reservation  ,
TP_PROTO(struct super_block *sb, unsigned long goal)  ,
TP_ARGS(sb, goal)  ,
TP_STRUCT__entry(__field(dev_t, dev) __field(unsigned long, goal))  ,
TP_fast_assign(__entry->dev=sb->s_dev;__entry->goal=goal;)  ,
TP_printk("dev %d,%d goal %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->goal)   
)
TRACE_EVENT ( ext3_reserved  ,
TP_PROTO(struct super_block *sb, unsigned long block, struct ext3_reserve_window_node *rsv_node)  ,
TP_ARGS(sb, block, rsv_node)  ,
TP_STRUCT__entry(__field(unsigned long, block) __field(unsigned long, start) __field(unsigned long, end) __field(dev_t, dev))  ,
TP_fast_assign(__entry->block=block;__entry->start=rsv_node->rsv_window._rsv_start;__entry->end=rsv_node->rsv_window._rsv_end;__entry->dev=sb->s_dev;)  ,
TP_printk("dev %d,%d block %lu, start %lu end %lu", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->block, __entry->start, __entry->end  
)
TRACE_EVENT ( ext3_forget  ,
TP_PROTO(struct inode *inode, int is_metadata, unsigned long 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(unsigned long, 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 %d,%d ino %lu mode 0%o is_metadata %d block %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->mode, __entry->is_metadata, __entry->block  
)
TRACE_EVENT ( ext3_read_block_bitmap  ,
TP_PROTO(struct super_block *sb, unsigned int group ,
TP_ARGS(sb, group ,
TP_STRUCT__entry(__field(dev_t, dev) __field(__u32, group))  ,
TP_fast_assign(__entry->dev=sb->s_dev;__entry->group=group;)  ,
TP_printk("dev %d,%d group %u", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->group  
)
TRACE_EVENT ( ext3_direct_IO_enter  ,
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw ,
TP_ARGS(inode, offset, len, rw ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(loff_t, pos) __field(unsigned long, len) __field(int, rw))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->pos=offset;__entry->len=len;__entry->rw=rw;)  ,
TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->rw  
)
TRACE_EVENT ( ext3_direct_IO_exit  ,
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw, int ret ,
TP_ARGS(inode, offset, len, rw, ret ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(loff_t, pos) __field(unsigned long, len) __field(int, rw) __field(int, ret))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->pos=offset;__entry->len=len;__entry->rw=rw;__entry->ret=ret;)  ,
TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->pos, __entry->len, __entry->rw, __entry->ret  
)
TRACE_EVENT ( ext3_unlink_enter  ,
TP_PROTO(struct inode *parent, struct dentry *dentry ,
TP_ARGS(parent, dentry ,
TP_STRUCT__entry(__field(ino_t, parent) __field(ino_t, ino) __field(loff_t, size) __field(dev_t, dev))  ,
TP_fast_assign(__entry->parent=parent->i_ino;__entry->ino=dentry->d_inode->i_ino;__entry->size=dentry->d_inode->i_size;__entry->dev=dentry->d_inode->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu size %lld parent %ld", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino,(unsigned long long) __entry->size,(unsigned long) __entry->parent  
)
TRACE_EVENT ( ext3_unlink_exit  ,
TP_PROTO(struct dentry *dentry, int ret ,
TP_ARGS(dentry, ret ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(int, ret))  ,
TP_fast_assign(__entry->ino=dentry->d_inode->i_ino;__entry->dev=dentry->d_inode->i_sb->s_dev;__entry->ret=ret;)  ,
TP_printk("dev %d,%d ino %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->ret  
)
TRACE_EVENT ( ext3_get_blocks_enter  ,
TP_PROTO(struct inode *inode, unsigned long lblk, unsigned long len, int create ,
TP_ARGS(inode, lblk, len, create ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(unsigned long, lblk) __field(unsigned long, len) __field(int, create))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->lblk=lblk;__entry->len=len;__entry->create=create;)  ,
TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->lblk, __entry->len, __entry->create  
)
TRACE_EVENT ( ext3_get_blocks_exit  ,
TP_PROTO(struct inode *inode, unsigned long lblk, unsigned long pblk, unsigned long len, int ret ,
TP_ARGS(inode, lblk, pblk, len, ret ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev) __field(unsigned long, lblk) __field(unsigned long, pblk) __field(unsigned long, len) __field(int, ret))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;__entry->lblk=lblk;__entry->pblk=pblk;__entry->len=len;__entry->ret=ret;)  ,
TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino, __entry->lblk, __entry->pblk, __entry->len, __entry->ret  
)
TRACE_EVENT ( ext3_load_inode  ,
TP_PROTO(struct inode *inode ,
TP_ARGS(inode ,
TP_STRUCT__entry(__field(ino_t, ino) __field(dev_t, dev))  ,
TP_fast_assign(__entry->ino=inode->i_ino;__entry->dev=inode->i_sb->s_dev;)  ,
TP_printk("dev %d,%d ino %lu", MAJOR(__entry->dev), MINOR(__entry->dev),(unsigned long) __entry->ino  
)