aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/ctree.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index c7b67cf24bba..eea5da7a2b9a 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1138,13 +1138,13 @@ __tree_mod_log_rewind(struct extent_buffer *eb, u64 time_seq,
1138 switch (tm->op) { 1138 switch (tm->op) {
1139 case MOD_LOG_KEY_REMOVE_WHILE_FREEING: 1139 case MOD_LOG_KEY_REMOVE_WHILE_FREEING:
1140 BUG_ON(tm->slot < n); 1140 BUG_ON(tm->slot < n);
1141 case MOD_LOG_KEY_REMOVE:
1142 n++;
1143 case MOD_LOG_KEY_REMOVE_WHILE_MOVING: 1141 case MOD_LOG_KEY_REMOVE_WHILE_MOVING:
1142 case MOD_LOG_KEY_REMOVE:
1144 btrfs_set_node_key(eb, &tm->key, tm->slot); 1143 btrfs_set_node_key(eb, &tm->key, tm->slot);
1145 btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr); 1144 btrfs_set_node_blockptr(eb, tm->slot, tm->blockptr);
1146 btrfs_set_node_ptr_generation(eb, tm->slot, 1145 btrfs_set_node_ptr_generation(eb, tm->slot,
1147 tm->generation); 1146 tm->generation);
1147 n++;
1148 break; 1148 break;
1149 case MOD_LOG_KEY_REPLACE: 1149 case MOD_LOG_KEY_REPLACE:
1150 BUG_ON(tm->slot >= n); 1150 BUG_ON(tm->slot >= n);
@@ -4611,12 +4611,6 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4611 u32 nritems; 4611 u32 nritems;
4612 int ret; 4612 int ret;
4613 4613
4614 if (level) {
4615 ret = tree_mod_log_insert_key(root->fs_info, parent, slot,
4616 MOD_LOG_KEY_REMOVE);
4617 BUG_ON(ret < 0);
4618 }
4619
4620 nritems = btrfs_header_nritems(parent); 4614 nritems = btrfs_header_nritems(parent);
4621 if (slot != nritems - 1) { 4615 if (slot != nritems - 1) {
4622 if (level) 4616 if (level)
@@ -4627,6 +4621,10 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4627 btrfs_node_key_ptr_offset(slot + 1), 4621 btrfs_node_key_ptr_offset(slot + 1),
4628 sizeof(struct btrfs_key_ptr) * 4622 sizeof(struct btrfs_key_ptr) *
4629 (nritems - slot - 1)); 4623 (nritems - slot - 1));
4624 } else if (level) {
4625 ret = tree_mod_log_insert_key(root->fs_info, parent, slot,
4626 MOD_LOG_KEY_REMOVE);
4627 BUG_ON(ret < 0);
4630 } 4628 }
4631 4629
4632 nritems--; 4630 nritems--;