|
@@ -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;
|