diff options
-rw-r--r-- | fs/btrfs/ctree.c | 14 |
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--; |