aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r--fs/btrfs/ctree.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index c7c48489b963..63147c1315a7 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -540,9 +540,8 @@ tree_mod_log_insert_move(struct btrfs_fs_info *fs_info,
540 int ret; 540 int ret;
541 int i; 541 int i;
542 542
543 ret = tree_mod_alloc(fs_info, flags, &tm); 543 if (tree_mod_dont_log(fs_info, eb))
544 if (ret <= 0) 544 return 0;
545 return ret;
546 545
547 for (i = 0; i + dst_slot < src_slot && i < nr_items; i++) { 546 for (i = 0; i + dst_slot < src_slot && i < nr_items; i++) {
548 ret = tree_mod_log_insert_key(fs_info, eb, i + dst_slot, 547 ret = tree_mod_log_insert_key(fs_info, eb, i + dst_slot,
@@ -550,6 +549,10 @@ tree_mod_log_insert_move(struct btrfs_fs_info *fs_info,
550 BUG_ON(ret < 0); 549 BUG_ON(ret < 0);
551 } 550 }
552 551
552 ret = tree_mod_alloc(fs_info, flags, &tm);
553 if (ret <= 0)
554 return ret;
555
553 tm->index = eb->start >> PAGE_CACHE_SHIFT; 556 tm->index = eb->start >> PAGE_CACHE_SHIFT;
554 tm->slot = src_slot; 557 tm->slot = src_slot;
555 tm->move.dst_slot = dst_slot; 558 tm->move.dst_slot = dst_slot;
@@ -4548,9 +4551,7 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4548 btrfs_node_key_ptr_offset(slot + 1), 4551 btrfs_node_key_ptr_offset(slot + 1),
4549 sizeof(struct btrfs_key_ptr) * 4552 sizeof(struct btrfs_key_ptr) *
4550 (nritems - slot - 1)); 4553 (nritems - slot - 1));
4551 } 4554 } else if (tree_mod_log && level) {
4552
4553 if (tree_mod_log && level) {
4554 ret = tree_mod_log_insert_key(root->fs_info, parent, slot, 4555 ret = tree_mod_log_insert_key(root->fs_info, parent, slot,
4555 MOD_LOG_KEY_REMOVE); 4556 MOD_LOG_KEY_REMOVE);
4556 BUG_ON(ret < 0); 4557 BUG_ON(ret < 0);