diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 15:23:52 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 15:23:52 -0700 | 
| commit | f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5 (patch) | |
| tree | fb51d60060453aef9e776c7d3a31588609d34d76 /fs/xfs/xfs_trace.h | |
| parent | 0c9aac08261512d70d7d4817bd222abca8b6bdd6 (diff) | |
| parent | 5a5881cdeec2c019b5c9a307800218ee029f7f61 (diff) | |
| download | olio-linux-3.10-f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5.tar.xz olio-linux-3.10-f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5.zip  | |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Pull XFS update (part 2) from Ben Myers:
 "Fixes for tracing of xfs_name strings, flag handling in
  open_by_handle, a log space hang with freeze/unfreeze, fstrim offset
  calculations, a section mismatch with xfs_qm_exit, an oops in
  xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.
  There are also additional trace points for attributes, and the
  addition of a workqueue for allocation to work around kernel stack
  size limitations."
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  xfs: add lots of attribute trace points
  xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
  xfs: fix fstrim offset calculations
  xfs: Account log unmount transaction correctly
  xfs: don't cache inodes read through bulkstat
  xfs: trace xfs_name strings correctly
  xfs: introduce an allocation workqueue
  xfs: Fix open flag handling in open_by_handle code
  xfs: fix deadlock in xfs_rtfree_extent
  fs: xfs: fix section mismatch in linux-next
Diffstat (limited to 'fs/xfs/xfs_trace.h')
| -rw-r--r-- | fs/xfs/xfs_trace.h | 78 | 
1 files changed, 73 insertions, 5 deletions
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 75eb54af4d5..06838c42b2a 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -627,16 +627,19 @@ DECLARE_EVENT_CLASS(xfs_namespace_class,  	TP_STRUCT__entry(  		__field(dev_t, dev)  		__field(xfs_ino_t, dp_ino) +		__field(int, namelen)  		__dynamic_array(char, name, name->len)  	),  	TP_fast_assign(  		__entry->dev = VFS_I(dp)->i_sb->s_dev;  		__entry->dp_ino = dp->i_ino; +		__entry->namelen = name->len;  		memcpy(__get_str(name), name->name, name->len);  	), -	TP_printk("dev %d:%d dp ino 0x%llx name %s", +	TP_printk("dev %d:%d dp ino 0x%llx name %.*s",  		  MAJOR(__entry->dev), MINOR(__entry->dev),  		  __entry->dp_ino, +		  __entry->namelen,  		  __get_str(name))  ) @@ -658,6 +661,8 @@ TRACE_EVENT(xfs_rename,  		__field(dev_t, dev)  		__field(xfs_ino_t, src_dp_ino)  		__field(xfs_ino_t, target_dp_ino) +		__field(int, src_namelen) +		__field(int, target_namelen)  		__dynamic_array(char, src_name, src_name->len)  		__dynamic_array(char, target_name, target_name->len)  	), @@ -665,15 +670,20 @@ TRACE_EVENT(xfs_rename,  		__entry->dev = VFS_I(src_dp)->i_sb->s_dev;  		__entry->src_dp_ino = src_dp->i_ino;  		__entry->target_dp_ino = target_dp->i_ino; +		__entry->src_namelen = src_name->len; +		__entry->target_namelen = target_name->len;  		memcpy(__get_str(src_name), src_name->name, src_name->len); -		memcpy(__get_str(target_name), target_name->name, target_name->len); +		memcpy(__get_str(target_name), target_name->name, +			target_name->len);  	),  	TP_printk("dev %d:%d src dp ino 0x%llx target dp ino 0x%llx" -		  " src name %s target name %s", +		  " src name %.*s target name %.*s",  		  MAJOR(__entry->dev), MINOR(__entry->dev),  		  __entry->src_dp_ino,  		  __entry->target_dp_ino, +		  __entry->src_namelen,  		  __get_str(src_name), +		  __entry->target_namelen,  		  __get_str(target_name))  ) @@ -1408,7 +1418,7 @@ DEFINE_ALLOC_EVENT(xfs_alloc_vextent_noagbp);  DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed);  DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed); -DECLARE_EVENT_CLASS(xfs_dir2_class, +DECLARE_EVENT_CLASS(xfs_da_class,  	TP_PROTO(struct xfs_da_args *args),  	TP_ARGS(args),  	TP_STRUCT__entry( @@ -1443,7 +1453,7 @@ DECLARE_EVENT_CLASS(xfs_dir2_class,  )  #define DEFINE_DIR2_EVENT(name) \ -DEFINE_EVENT(xfs_dir2_class, name, \ +DEFINE_EVENT(xfs_da_class, name, \  	TP_PROTO(struct xfs_da_args *args), \  	TP_ARGS(args))  DEFINE_DIR2_EVENT(xfs_dir2_sf_addname); @@ -1472,6 +1482,64 @@ DEFINE_DIR2_EVENT(xfs_dir2_node_replace);  DEFINE_DIR2_EVENT(xfs_dir2_node_removename);  DEFINE_DIR2_EVENT(xfs_dir2_node_to_leaf); +#define DEFINE_ATTR_EVENT(name) \ +DEFINE_EVENT(xfs_da_class, name, \ +	TP_PROTO(struct xfs_da_args *args), \ +	TP_ARGS(args)) +DEFINE_ATTR_EVENT(xfs_attr_sf_add); +DEFINE_ATTR_EVENT(xfs_attr_sf_addname); +DEFINE_ATTR_EVENT(xfs_attr_sf_create); +DEFINE_ATTR_EVENT(xfs_attr_sf_lookup); +DEFINE_ATTR_EVENT(xfs_attr_sf_remove); +DEFINE_ATTR_EVENT(xfs_attr_sf_removename); +DEFINE_ATTR_EVENT(xfs_attr_sf_to_leaf); + +DEFINE_ATTR_EVENT(xfs_attr_leaf_add); +DEFINE_ATTR_EVENT(xfs_attr_leaf_add_old); +DEFINE_ATTR_EVENT(xfs_attr_leaf_add_new); +DEFINE_ATTR_EVENT(xfs_attr_leaf_addname); +DEFINE_ATTR_EVENT(xfs_attr_leaf_create); +DEFINE_ATTR_EVENT(xfs_attr_leaf_lookup); +DEFINE_ATTR_EVENT(xfs_attr_leaf_replace); +DEFINE_ATTR_EVENT(xfs_attr_leaf_removename); +DEFINE_ATTR_EVENT(xfs_attr_leaf_split); +DEFINE_ATTR_EVENT(xfs_attr_leaf_split_before); +DEFINE_ATTR_EVENT(xfs_attr_leaf_split_after); +DEFINE_ATTR_EVENT(xfs_attr_leaf_clearflag); +DEFINE_ATTR_EVENT(xfs_attr_leaf_setflag); +DEFINE_ATTR_EVENT(xfs_attr_leaf_flipflags); +DEFINE_ATTR_EVENT(xfs_attr_leaf_to_sf); +DEFINE_ATTR_EVENT(xfs_attr_leaf_to_node); +DEFINE_ATTR_EVENT(xfs_attr_leaf_rebalance); +DEFINE_ATTR_EVENT(xfs_attr_leaf_unbalance); + +DEFINE_ATTR_EVENT(xfs_attr_node_addname); +DEFINE_ATTR_EVENT(xfs_attr_node_lookup); +DEFINE_ATTR_EVENT(xfs_attr_node_replace); +DEFINE_ATTR_EVENT(xfs_attr_node_removename); + +#define DEFINE_DA_EVENT(name) \ +DEFINE_EVENT(xfs_da_class, name, \ +	TP_PROTO(struct xfs_da_args *args), \ +	TP_ARGS(args)) +DEFINE_DA_EVENT(xfs_da_split); +DEFINE_DA_EVENT(xfs_da_join); +DEFINE_DA_EVENT(xfs_da_link_before); +DEFINE_DA_EVENT(xfs_da_link_after); +DEFINE_DA_EVENT(xfs_da_unlink_back); +DEFINE_DA_EVENT(xfs_da_unlink_forward); +DEFINE_DA_EVENT(xfs_da_root_split); +DEFINE_DA_EVENT(xfs_da_root_join); +DEFINE_DA_EVENT(xfs_da_node_add); +DEFINE_DA_EVENT(xfs_da_node_create); +DEFINE_DA_EVENT(xfs_da_node_split); +DEFINE_DA_EVENT(xfs_da_node_remove); +DEFINE_DA_EVENT(xfs_da_node_rebalance); +DEFINE_DA_EVENT(xfs_da_node_unbalance); +DEFINE_DA_EVENT(xfs_da_swap_lastblock); +DEFINE_DA_EVENT(xfs_da_grow_inode); +DEFINE_DA_EVENT(xfs_da_shrink_inode); +  DECLARE_EVENT_CLASS(xfs_dir2_space_class,  	TP_PROTO(struct xfs_da_args *args, int idx),  	TP_ARGS(args, idx),  |