Merge branch 'move_extents' of git://oss.oracle.com/git/tye/linux-2.6 into ocfs2...
[pandora-kernel.git] / fs / ocfs2 / ocfs2_trace.h
index 0f71659..3b481f4 100644 (file)
@@ -688,6 +688,31 @@ TRACE_EVENT(ocfs2_cache_block_dealloc,
                  __entry->blkno, __entry->bit)
 );
 
+TRACE_EVENT(ocfs2_trim_extent,
+       TP_PROTO(struct super_block *sb, unsigned long long blk,
+                unsigned long long count),
+       TP_ARGS(sb, blk, count),
+       TP_STRUCT__entry(
+               __field(int, dev_major)
+               __field(int, dev_minor)
+               __field(unsigned long long, blk)
+               __field(__u64,  count)
+       ),
+       TP_fast_assign(
+               __entry->dev_major = MAJOR(sb->s_dev);
+               __entry->dev_minor = MINOR(sb->s_dev);
+               __entry->blk = blk;
+               __entry->count = count;
+       ),
+       TP_printk("%d %d %llu %llu",
+                 __entry->dev_major, __entry->dev_minor,
+                 __entry->blk, __entry->count)
+);
+
+DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_trim_group);
+
+DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_fs);
+
 /* End of trace events for fs/ocfs2/alloc.c. */
 
 /* Trace events for fs/ocfs2/localalloc.c. */
@@ -2013,6 +2038,723 @@ DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_acquire_dquot);
 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_mark_dquot_dirty);
 
 /* End of trace events for fs/ocfs2/quota_global.c. */
+
+/* Trace events for fs/ocfs2/dir.c. */
+DEFINE_OCFS2_INT_EVENT(ocfs2_search_dirblock);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_dir_block);
+
+DEFINE_OCFS2_POINTER_EVENT(ocfs2_find_entry_el);
+
+TRACE_EVENT(ocfs2_dx_dir_search,
+       TP_PROTO(unsigned long long ino, int namelen, const char *name,
+                unsigned int major_hash, unsigned int minor_hash,
+                unsigned long long blkno),
+       TP_ARGS(ino, namelen, name, major_hash, minor_hash, blkno),
+       TP_STRUCT__entry(
+               __field(unsigned long long, ino)
+               __field(int, namelen)
+               __string(name, name)
+               __field(unsigned int, major_hash)
+               __field(unsigned int,minor_hash)
+               __field(unsigned long long, blkno)
+       ),
+       TP_fast_assign(
+               __entry->ino = ino;
+               __entry->namelen = namelen;
+               __assign_str(name, name);
+               __entry->major_hash = major_hash;
+               __entry->minor_hash = minor_hash;
+               __entry->blkno = blkno;
+       ),
+       TP_printk("%llu %.*s %u %u %llu", __entry->ino,
+                  __entry->namelen, __get_str(name),
+                 __entry->major_hash, __entry->minor_hash, __entry->blkno)
+);
+
+DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_dx_dir_search_leaf_info);
+
+DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_delete_entry_dx);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_readdir);
+
+TRACE_EVENT(ocfs2_find_files_on_disk,
+       TP_PROTO(int namelen, const char *name, void *blkno,
+                unsigned long long dir),
+       TP_ARGS(namelen, name, blkno, dir),
+       TP_STRUCT__entry(
+               __field(int, namelen)
+               __string(name, name)
+               __field(void *, blkno)
+               __field(unsigned long long, dir)
+       ),
+       TP_fast_assign(
+               __entry->namelen = namelen;
+               __assign_str(name, name);
+               __entry->blkno = blkno;
+               __entry->dir = dir;
+       ),
+       TP_printk("%.*s %p %llu", __entry->namelen, __get_str(name),
+                 __entry->blkno, __entry->dir)
+);
+
+TRACE_EVENT(ocfs2_check_dir_for_entry,
+       TP_PROTO(unsigned long long dir, int namelen, const char *name),
+       TP_ARGS(dir, namelen, name),
+       TP_STRUCT__entry(
+               __field(unsigned long long, dir)
+               __field(int, namelen)
+               __string(name, name)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __entry->namelen = namelen;
+               __assign_str(name, name);
+       ),
+       TP_printk("%llu %.*s", __entry->dir,
+                 __entry->namelen, __get_str(name))
+);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_dx_dir_attach_index);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_format_cluster);
+
+TRACE_EVENT(ocfs2_dx_dir_index_root_block,
+       TP_PROTO(unsigned long long dir,
+                unsigned int major_hash, unsigned int minor_hash,
+                int namelen, const char *name, unsigned int num_used),
+       TP_ARGS(dir, major_hash, minor_hash, namelen, name, num_used),
+       TP_STRUCT__entry(
+               __field(unsigned long long, dir)
+               __field(unsigned int, major_hash)
+               __field(unsigned int, minor_hash)
+               __field(int, namelen)
+               __string(name, name)
+               __field(unsigned int, num_used)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __entry->major_hash = major_hash;
+               __entry->minor_hash = minor_hash;
+               __entry->namelen = namelen;
+               __assign_str(name, name);
+               __entry->num_used = num_used;
+       ),
+       TP_printk("%llu %x %x %.*s %u", __entry->dir,
+                 __entry->major_hash, __entry->minor_hash,
+                  __entry->namelen, __get_str(name), __entry->num_used)
+);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_extend_dir);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_rebalance);
+
+DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_dx_dir_rebalance_split);
+
+DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_prepare_dir_for_insert);
+
+/* End of trace events for fs/ocfs2/dir.c. */
+
+/* Trace events for fs/ocfs2/namei.c. */
+
+DECLARE_EVENT_CLASS(ocfs2__dentry_ops,
+       TP_PROTO(void *dir, void *dentry, int name_len, const char *name,
+                unsigned long long dir_blkno, unsigned long long extra),
+       TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra),
+       TP_STRUCT__entry(
+               __field(void *, dir)
+               __field(void *, dentry)
+               __field(int, name_len)
+               __string(name, name)
+               __field(unsigned long long, dir_blkno)
+               __field(unsigned long long, extra)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __entry->dentry = dentry;
+               __entry->name_len = name_len;
+               __assign_str(name, name);
+               __entry->dir_blkno = dir_blkno;
+               __entry->extra = extra;
+       ),
+       TP_printk("%p %p %.*s %llu %llu", __entry->dir, __entry->dentry,
+                 __entry->name_len, __get_str(name),
+                 __entry->dir_blkno, __entry->extra)
+);
+
+#define DEFINE_OCFS2_DENTRY_OPS(name)                                  \
+DEFINE_EVENT(ocfs2__dentry_ops, name,                                  \
+TP_PROTO(void *dir, void *dentry, int name_len, const char *name,      \
+        unsigned long long dir_blkno, unsigned long long extra),       \
+       TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra))
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_lookup);
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_mkdir);
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_create);
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_unlink);
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_symlink_create);
+
+DEFINE_OCFS2_DENTRY_OPS(ocfs2_mv_orphaned_inode_to_new);
+
+DEFINE_OCFS2_POINTER_EVENT(ocfs2_lookup_ret);
+
+TRACE_EVENT(ocfs2_mknod,
+       TP_PROTO(void *dir, void *dentry, int name_len, const char *name,
+                unsigned long long dir_blkno, unsigned long dev, int mode),
+       TP_ARGS(dir, dentry, name_len, name, dir_blkno, dev, mode),
+       TP_STRUCT__entry(
+               __field(void *, dir)
+               __field(void *, dentry)
+               __field(int, name_len)
+               __string(name, name)
+               __field(unsigned long long, dir_blkno)
+               __field(unsigned long, dev)
+               __field(int, mode)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __entry->dentry = dentry;
+               __entry->name_len = name_len;
+               __assign_str(name, name);
+               __entry->dir_blkno = dir_blkno;
+               __entry->dev = dev;
+               __entry->mode = mode;
+       ),
+       TP_printk("%p %p %.*s %llu %lu %d", __entry->dir, __entry->dentry,
+                 __entry->name_len, __get_str(name),
+                 __entry->dir_blkno, __entry->dev, __entry->mode)
+);
+
+TRACE_EVENT(ocfs2_link,
+       TP_PROTO(unsigned long long ino, int old_len, const char *old_name,
+                int name_len, const char *name),
+       TP_ARGS(ino, old_len, old_name, name_len, name),
+       TP_STRUCT__entry(
+               __field(unsigned long long, ino)
+               __field(int, old_len)
+               __string(old_name, old_name)
+               __field(int, name_len)
+               __string(name, name)
+       ),
+       TP_fast_assign(
+               __entry->ino = ino;
+               __entry->old_len = old_len;
+               __assign_str(old_name, old_name);
+               __entry->name_len = name_len;
+               __assign_str(name, name);
+       ),
+       TP_printk("%llu %.*s %.*s", __entry->ino,
+                 __entry->old_len, __get_str(old_name),
+                 __entry->name_len, __get_str(name))
+);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_unlink_noent);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock_end);
+
+TRACE_EVENT(ocfs2_rename,
+       TP_PROTO(void *old_dir, void *old_dentry,
+                void *new_dir, void *new_dentry,
+                int old_len, const char *old_name,
+                int new_len, const char *new_name),
+       TP_ARGS(old_dir, old_dentry, new_dir, new_dentry,
+               old_len, old_name, new_len, new_name),
+       TP_STRUCT__entry(
+               __field(void *, old_dir)
+               __field(void *, old_dentry)
+               __field(void *, new_dir)
+               __field(void *, new_dentry)
+               __field(int, old_len)
+               __string(old_name, old_name)
+               __field(int, new_len)
+               __string(new_name, new_name)
+       ),
+       TP_fast_assign(
+               __entry->old_dir = old_dir;
+               __entry->old_dentry = old_dentry;
+               __entry->new_dir = new_dir;
+               __entry->new_dentry = new_dentry;
+               __entry->old_len = old_len;
+               __assign_str(old_name, old_name);
+               __entry->new_len = new_len;
+               __assign_str(new_name, new_name);
+       ),
+       TP_printk("%p %p %p %p %.*s %.*s",
+                 __entry->old_dir, __entry->old_dentry,
+                 __entry->new_dir, __entry->new_dentry,
+                 __entry->old_len, __get_str(old_name),
+                 __entry->new_len, __get_str(new_name))
+);
+
+TRACE_EVENT(ocfs2_rename_target_exists,
+       TP_PROTO(int new_len, const char *new_name),
+       TP_ARGS(new_len, new_name),
+       TP_STRUCT__entry(
+               __field(int, new_len)
+               __string(new_name, new_name)
+       ),
+       TP_fast_assign(
+               __entry->new_len = new_len;
+               __assign_str(new_name, new_name);
+       ),
+       TP_printk("%.*s", __entry->new_len, __get_str(new_name))
+);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_rename_disagree);
+
+TRACE_EVENT(ocfs2_rename_over_existing,
+       TP_PROTO(unsigned long long new_blkno, void *new_bh,
+                unsigned long long newdi_blkno),
+       TP_ARGS(new_blkno, new_bh, newdi_blkno),
+       TP_STRUCT__entry(
+               __field(unsigned long long, new_blkno)
+               __field(void *, new_bh)
+               __field(unsigned long long, newdi_blkno)
+       ),
+       TP_fast_assign(
+               __entry->new_blkno = new_blkno;
+               __entry->new_bh = new_bh;
+               __entry->newdi_blkno = newdi_blkno;
+       ),
+       TP_printk("%llu %p %llu", __entry->new_blkno, __entry->new_bh,
+                 __entry->newdi_blkno)
+);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_create_symlink_data);
+
+TRACE_EVENT(ocfs2_symlink_begin,
+       TP_PROTO(void *dir, void *dentry, const char *symname,
+                int len, const char *name),
+       TP_ARGS(dir, dentry, symname, len, name),
+       TP_STRUCT__entry(
+               __field(void *, dir)
+               __field(void *, dentry)
+               __field(const char *, symname)
+               __field(int, len)
+               __string(name, name)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __entry->dentry = dentry;
+               __entry->symname = symname;
+               __entry->len = len;
+               __assign_str(name, name);
+       ),
+       TP_printk("%p %p %s %.*s", __entry->dir, __entry->dentry,
+                 __entry->symname, __entry->len, __get_str(name))
+);
+
+TRACE_EVENT(ocfs2_blkno_stringify,
+       TP_PROTO(unsigned long long blkno, const char *name, int namelen),
+       TP_ARGS(blkno, name, namelen),
+       TP_STRUCT__entry(
+               __field(unsigned long long, blkno)
+               __string(name, name)
+               __field(int, namelen)
+       ),
+       TP_fast_assign(
+               __entry->blkno = blkno;
+               __assign_str(name, name);
+               __entry->namelen = namelen;
+       ),
+       TP_printk("%llu %s %d", __entry->blkno, __get_str(name),
+                 __entry->namelen)
+);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_add_begin);
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_orphan_add_end);
+
+TRACE_EVENT(ocfs2_orphan_del,
+       TP_PROTO(unsigned long long dir, const char *name, int namelen),
+       TP_ARGS(dir, name, namelen),
+       TP_STRUCT__entry(
+               __field(unsigned long long, dir)
+               __string(name, name)
+               __field(int, namelen)
+       ),
+       TP_fast_assign(
+               __entry->dir = dir;
+               __assign_str(name, name);
+               __entry->namelen = namelen;
+       ),
+       TP_printk("%llu %s %d", __entry->dir, __get_str(name),
+                 __entry->namelen)
+);
+
+/* End of trace events for fs/ocfs2/namei.c. */
+
+/* Trace events for fs/ocfs2/dcache.c. */
+
+TRACE_EVENT(ocfs2_dentry_revalidate,
+       TP_PROTO(void *dentry, int len, const char *name),
+       TP_ARGS(dentry, len, name),
+       TP_STRUCT__entry(
+               __field(void *, dentry)
+               __field(int, len)
+               __string(name, name)
+       ),
+       TP_fast_assign(
+               __entry->dentry = dentry;
+               __entry->len = len;
+               __assign_str(name, name);
+       ),
+       TP_printk("%p %.*s", __entry->dentry, __entry->len, __get_str(name))
+);
+
+TRACE_EVENT(ocfs2_dentry_revalidate_negative,
+       TP_PROTO(int len, const char *name, unsigned long pgen,
+                unsigned long gen),
+       TP_ARGS(len, name, pgen, gen),
+       TP_STRUCT__entry(
+               __field(int, len)
+               __string(name, name)
+               __field(unsigned long, pgen)
+               __field(unsigned long, gen)
+       ),
+       TP_fast_assign(
+               __entry->len = len;
+               __assign_str(name, name);
+               __entry->pgen = pgen;
+               __entry->gen = gen;
+       ),
+       TP_printk("%.*s %lu %lu", __entry->len, __get_str(name),
+                 __entry->pgen, __entry->gen)
+);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_delete);
+
+DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_dentry_revalidate_orphaned);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_nofsdata);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_dentry_revalidate_ret);
+
+TRACE_EVENT(ocfs2_find_local_alias,
+       TP_PROTO(int len, const char *name),
+       TP_ARGS(len, name),
+       TP_STRUCT__entry(
+               __field(int, len)
+               __string(name, name)
+       ),
+       TP_fast_assign(
+               __entry->len = len;
+               __assign_str(name, name);
+       ),
+       TP_printk("%.*s", __entry->len, __get_str(name))
+);
+
+TRACE_EVENT(ocfs2_dentry_attach_lock,
+       TP_PROTO(int len, const char *name,
+                unsigned long long parent, void *fsdata),
+       TP_ARGS(len, name, parent, fsdata),
+       TP_STRUCT__entry(
+               __field(int, len)
+               __string(name, name)
+               __field(unsigned long long, parent)
+               __field(void *, fsdata)
+       ),
+       TP_fast_assign(
+               __entry->len = len;
+               __assign_str(name, name);
+               __entry->parent = parent;
+               __entry->fsdata = fsdata;
+       ),
+       TP_printk("%.*s %llu %p", __entry->len, __get_str(name),
+                 __entry->parent, __entry->fsdata)
+);
+
+TRACE_EVENT(ocfs2_dentry_attach_lock_found,
+       TP_PROTO(const char *name, unsigned long long parent,
+                unsigned long long ino),
+       TP_ARGS(name, parent, ino),
+       TP_STRUCT__entry(
+               __string(name, name)
+               __field(unsigned long long, parent)
+               __field(unsigned long long, ino)
+       ),
+       TP_fast_assign(
+               __assign_str(name, name);
+               __entry->parent = parent;
+               __entry->ino = ino;
+       ),
+       TP_printk("%s %llu %llu", __get_str(name), __entry->parent, __entry->ino)
+);
+/* End of trace events for fs/ocfs2/dcache.c. */
+
+/* Trace events for fs/ocfs2/export.c. */
+
+TRACE_EVENT(ocfs2_get_dentry_begin,
+       TP_PROTO(void *sb, void *handle, unsigned long long blkno),
+       TP_ARGS(sb, handle, blkno),
+       TP_STRUCT__entry(
+               __field(void *, sb)
+               __field(void *, handle)
+               __field(unsigned long long, blkno)
+       ),
+       TP_fast_assign(
+               __entry->sb = sb;
+               __entry->handle = handle;
+               __entry->blkno = blkno;
+       ),
+       TP_printk("%p %p %llu", __entry->sb, __entry->handle, __entry->blkno)
+);
+
+DEFINE_OCFS2_INT_INT_EVENT(ocfs2_get_dentry_test_bit);
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_get_dentry_stale);
+
+DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_get_dentry_generation);
+
+DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_dentry_end);
+
+TRACE_EVENT(ocfs2_get_parent,
+       TP_PROTO(void *child, int len, const char *name,
+                unsigned long long ino),
+       TP_ARGS(child, len, name, ino),
+       TP_STRUCT__entry(
+               __field(void *, child)
+               __field(int, len)
+               __string(name, name)
+               __field(unsigned long long, ino)
+       ),
+       TP_fast_assign(
+               __entry->child = child;
+               __entry->len = len;
+               __assign_str(name, name);
+               __entry->ino = ino;
+       ),
+       TP_printk("%p %.*s %llu", __entry->child, __entry->len,
+                 __get_str(name), __entry->ino)
+);
+
+DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_parent_end);
+
+TRACE_EVENT(ocfs2_encode_fh_begin,
+       TP_PROTO(void *dentry, int name_len, const char *name,
+                void *fh, int len, int connectable),
+       TP_ARGS(dentry, name_len, name, fh, len, connectable),
+       TP_STRUCT__entry(
+               __field(void *, dentry)
+               __field(int, name_len)
+               __string(name, name)
+               __field(void *, fh)
+               __field(int, len)
+               __field(int, connectable)
+       ),
+       TP_fast_assign(
+               __entry->dentry = dentry;
+               __entry->name_len = name_len;
+               __assign_str(name, name);
+               __entry->fh = fh;
+               __entry->len = len;
+               __entry->connectable = connectable;
+       ),
+       TP_printk("%p %.*s %p %d %d", __entry->dentry, __entry->name_len,
+                 __get_str(name), __entry->fh, __entry->len,
+                 __entry->connectable)
+);
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_self);
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_parent);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_encode_fh_type);
+
+/* End of trace events for fs/ocfs2/export.c. */
+
+/* Trace events for fs/ocfs2/journal.c. */
+
+DEFINE_OCFS2_UINT_EVENT(ocfs2_commit_cache_begin);
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_commit_cache_end);
+
+DEFINE_OCFS2_INT_INT_EVENT(ocfs2_extend_trans);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_extend_trans_restart);
+
+DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_journal_access);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_journal_dirty);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_journal_init);
+
+DEFINE_OCFS2_UINT_EVENT(ocfs2_journal_init_maxlen);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_journal_shutdown);
+
+DEFINE_OCFS2_POINTER_EVENT(ocfs2_journal_shutdown_wait);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_complete_recovery);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_complete_recovery_end);
+
+TRACE_EVENT(ocfs2_complete_recovery_slot,
+       TP_PROTO(int slot, unsigned long long la_ino,
+                unsigned long long tl_ino, void *qrec),
+       TP_ARGS(slot, la_ino, tl_ino, qrec),
+       TP_STRUCT__entry(
+               __field(int, slot)
+               __field(unsigned long long, la_ino)
+               __field(unsigned long long, tl_ino)
+               __field(void *, qrec)
+       ),
+       TP_fast_assign(
+               __entry->slot = slot;
+               __entry->la_ino = la_ino;
+               __entry->tl_ino = tl_ino;
+               __entry->qrec = qrec;
+       ),
+       TP_printk("%d %llu %llu %p", __entry->slot, __entry->la_ino,
+                 __entry->tl_ino, __entry->qrec)
+);
+
+DEFINE_OCFS2_INT_INT_EVENT(ocfs2_recovery_thread_node);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_recovery_thread_end);
+
+TRACE_EVENT(ocfs2_recovery_thread,
+       TP_PROTO(int node_num, int osb_node_num, int disable,
+                void *recovery_thread, int map_set),
+       TP_ARGS(node_num, osb_node_num, disable, recovery_thread, map_set),
+       TP_STRUCT__entry(
+               __field(int, node_num)
+               __field(int, osb_node_num)
+               __field(int,disable)
+               __field(void *, recovery_thread)
+               __field(int,map_set)
+       ),
+       TP_fast_assign(
+               __entry->node_num = node_num;
+               __entry->osb_node_num = osb_node_num;
+               __entry->disable = disable;
+               __entry->recovery_thread = recovery_thread;
+               __entry->map_set = map_set;
+       ),
+       TP_printk("%d %d %d %p %d", __entry->node_num,
+                  __entry->osb_node_num, __entry->disable,
+                  __entry->recovery_thread, __entry->map_set)
+);
+
+DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_replay_journal_recovered);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_lock_err);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_skip);
+
+DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_recover_node);
+
+DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_recover_node_skip);
+
+DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_mark_dead_nodes);
+
+DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_begin);
+
+DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_end);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_filldir);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_recover_orphans);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_recover_orphans_iput);
+
+DEFINE_OCFS2_INT_EVENT(ocfs2_wait_on_mount);
+
+/* End of trace events for fs/ocfs2/journal.c. */
+
+/* Trace events for fs/ocfs2/buffer_head_io.c. */
+
+DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_read_blocks_sync);
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_read_blocks_sync_jbd);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_read_blocks_from_disk);
+
+DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_bh);
+
+DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_end);
+
+TRACE_EVENT(ocfs2_write_block,
+       TP_PROTO(unsigned long long block, void *ci),
+       TP_ARGS(block, ci),
+       TP_STRUCT__entry(
+               __field(unsigned long long, block)
+               __field(void *, ci)
+       ),
+       TP_fast_assign(
+               __entry->block = block;
+               __entry->ci = ci;
+       ),
+       TP_printk("%llu %p", __entry->block, __entry->ci)
+);
+
+TRACE_EVENT(ocfs2_read_blocks_begin,
+       TP_PROTO(void *ci, unsigned long long block,
+                unsigned int nr, int flags),
+       TP_ARGS(ci, block, nr, flags),
+       TP_STRUCT__entry(
+               __field(void *, ci)
+               __field(unsigned long long, block)
+               __field(unsigned int, nr)
+               __field(int, flags)
+       ),
+       TP_fast_assign(
+               __entry->ci = ci;
+               __entry->block = block;
+               __entry->nr = nr;
+               __entry->flags = flags;
+       ),
+       TP_printk("%p %llu %u %d", __entry->ci, __entry->block,
+                 __entry->nr, __entry->flags)
+);
+
+/* End of trace events for fs/ocfs2/buffer_head_io.c. */
+
+/* Trace events for fs/ocfs2/uptodate.c. */
+
+DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_copied_metadata_tree);
+
+DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_metadata_cache_purge);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_buffer_cached_begin);
+
+TRACE_EVENT(ocfs2_buffer_cached_end,
+       TP_PROTO(int index, void *item),
+       TP_ARGS(index, item),
+       TP_STRUCT__entry(
+               __field(int, index)
+               __field(void *, item)
+       ),
+       TP_fast_assign(
+               __entry->index = index;
+               __entry->item = item;
+       ),
+       TP_printk("%d %p", __entry->index, __entry->item)
+);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_append_cache_array);
+
+DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_insert_cache_tree);
+
+DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_expand_cache);
+
+DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_set_buffer_uptodate);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_set_buffer_uptodate_begin);
+
+DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_remove_metadata_array);
+
+DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_remove_metadata_tree);
+
+DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_remove_block_from_cache);
+
+/* End of trace events for fs/ocfs2/uptodate.c. */
 #endif /* _TRACE_OCFS2_H */
 
 /* This part must be outside protection */