diff options
Diffstat (limited to 'fs/xfs/xfs_da_btree.c')
| -rw-r--r-- | fs/xfs/xfs_da_btree.c | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 77c74257c2a..7f1a6f5b05a 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -108,6 +108,8 @@ xfs_da_node_create(xfs_da_args_t *args, xfs_dablk_t blkno, int level,  	int error;  	xfs_trans_t *tp; +	trace_xfs_da_node_create(args); +  	tp = args->trans;  	error = xfs_da_get_buf(tp, args->dp, blkno, -1, &bp, whichfork);  	if (error) @@ -140,6 +142,8 @@ xfs_da_split(xfs_da_state_t *state)  	xfs_dabuf_t *bp;  	int max, action, error, i; +	trace_xfs_da_split(state->args); +  	/*  	 * Walk back up the tree splitting/inserting/adjusting as necessary.  	 * If we need to insert and there isn't room, split the node, then @@ -178,10 +182,12 @@ xfs_da_split(xfs_da_state_t *state)  			state->extravalid = 1;  			if (state->inleaf) {  				state->extraafter = 0;	/* before newblk */ +				trace_xfs_attr_leaf_split_before(state->args);  				error = xfs_attr_leaf_split(state, oldblk,  							    &state->extrablk);  			} else {  				state->extraafter = 1;	/* after newblk */ +				trace_xfs_attr_leaf_split_after(state->args);  				error = xfs_attr_leaf_split(state, newblk,  							    &state->extrablk);  			} @@ -300,6 +306,8 @@ xfs_da_root_split(xfs_da_state_t *state, xfs_da_state_blk_t *blk1,  	xfs_mount_t *mp;  	xfs_dir2_leaf_t *leaf; +	trace_xfs_da_root_split(state->args); +  	/*  	 * Copy the existing (incorrect) block from the root node position  	 * to a free space somewhere. @@ -380,6 +388,8 @@ xfs_da_node_split(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk,  	int newcount, error;  	int useextra; +	trace_xfs_da_node_split(state->args); +  	node = oldblk->bp->data;  	ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); @@ -466,6 +476,8 @@ xfs_da_node_rebalance(xfs_da_state_t *state, xfs_da_state_blk_t *blk1,  	int count, tmp;  	xfs_trans_t *tp; +	trace_xfs_da_node_rebalance(state->args); +  	node1 = blk1->bp->data;  	node2 = blk2->bp->data;  	/* @@ -574,6 +586,8 @@ xfs_da_node_add(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk,  	xfs_da_node_entry_t *btree;  	int tmp; +	trace_xfs_da_node_add(state->args); +  	node = oldblk->bp->data;  	ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC));  	ASSERT((oldblk->index >= 0) && (oldblk->index <= be16_to_cpu(node->hdr.count))); @@ -619,6 +633,8 @@ xfs_da_join(xfs_da_state_t *state)  	xfs_da_state_blk_t *drop_blk, *save_blk;  	int action, error; +	trace_xfs_da_join(state->args); +  	action = 0;  	drop_blk = &state->path.blk[ state->path.active-1 ];  	save_blk = &state->altpath.blk[ state->path.active-1 ]; @@ -723,6 +739,8 @@ xfs_da_root_join(xfs_da_state_t *state, xfs_da_state_blk_t *root_blk)  	xfs_dabuf_t *bp;  	int error; +	trace_xfs_da_root_join(state->args); +  	args = state->args;  	ASSERT(args != NULL);  	ASSERT(root_blk->magic == XFS_DA_NODE_MAGIC); @@ -941,6 +959,8 @@ xfs_da_node_remove(xfs_da_state_t *state, xfs_da_state_blk_t *drop_blk)  	xfs_da_node_entry_t *btree;  	int tmp; +	trace_xfs_da_node_remove(state->args); +  	node = drop_blk->bp->data;  	ASSERT(drop_blk->index < be16_to_cpu(node->hdr.count));  	ASSERT(drop_blk->index >= 0); @@ -984,6 +1004,8 @@ xfs_da_node_unbalance(xfs_da_state_t *state, xfs_da_state_blk_t *drop_blk,  	int tmp;  	xfs_trans_t *tp; +	trace_xfs_da_node_unbalance(state->args); +  	drop_node = drop_blk->bp->data;  	save_node = save_blk->bp->data;  	ASSERT(drop_node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); @@ -1230,6 +1252,7 @@ xfs_da_blk_link(xfs_da_state_t *state, xfs_da_state_blk_t *old_blk,  		/*  		 * Link new block in before existing block.  		 */ +		trace_xfs_da_link_before(args);  		new_info->forw = cpu_to_be32(old_blk->blkno);  		new_info->back = old_info->back;  		if (old_info->back) { @@ -1251,6 +1274,7 @@ xfs_da_blk_link(xfs_da_state_t *state, xfs_da_state_blk_t *old_blk,  		/*  		 * Link new block in after existing block.  		 */ +		trace_xfs_da_link_after(args);  		new_info->forw = old_info->forw;  		new_info->back = cpu_to_be32(old_blk->blkno);  		if (old_info->forw) { @@ -1348,6 +1372,7 @@ xfs_da_blk_unlink(xfs_da_state_t *state, xfs_da_state_blk_t *drop_blk,  	 * Unlink the leaf block from the doubly linked chain of leaves.  	 */  	if (be32_to_cpu(save_info->back) == drop_blk->blkno) { +		trace_xfs_da_unlink_back(args);  		save_info->back = drop_info->back;  		if (drop_info->back) {  			error = xfs_da_read_buf(args->trans, args->dp, @@ -1365,6 +1390,7 @@ xfs_da_blk_unlink(xfs_da_state_t *state, xfs_da_state_blk_t *drop_blk,  			xfs_da_buf_done(bp);  		}  	} else { +		trace_xfs_da_unlink_forward(args);  		save_info->forw = drop_info->forw;  		if (drop_info->forw) {  			error = xfs_da_read_buf(args->trans, args->dp, @@ -1652,6 +1678,8 @@ xfs_da_grow_inode(  	int			count;  	int			error; +	trace_xfs_da_grow_inode(args); +  	if (args->whichfork == XFS_DATA_FORK) {  		bno = args->dp->i_mount->m_dirleafblk;  		count = args->dp->i_mount->m_dirblkfsbs; @@ -1690,6 +1718,8 @@ xfs_da_swap_lastblock(xfs_da_args_t *args, xfs_dablk_t *dead_blknop,  	xfs_dir2_leaf_t *dead_leaf2;  	xfs_dahash_t dead_hash; +	trace_xfs_da_swap_lastblock(args); +  	dead_buf = *dead_bufp;  	dead_blkno = *dead_blknop;  	tp = args->trans; @@ -1878,6 +1908,8 @@ xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno,  	xfs_trans_t *tp;  	xfs_mount_t *mp; +	trace_xfs_da_shrink_inode(args); +  	dp = args->dp;  	w = args->whichfork;  	tp = args->trans;  |