Revert "Btrfs: reorder tree mod log operations in deleting a pointer"
[~shefty/rdma-dev.git] / fs / btrfs / ctree.c
index 569c0dfb526c9f4879b21815c44750e022c2cc92..eea5da7a2b9aa38ce28ee9b55d1c8ff5c141fa16 100644 (file)
@@ -4611,12 +4611,6 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root,
        u32 nritems;
        int ret;
 
-       if (level) {
-               ret = tree_mod_log_insert_key(root->fs_info, parent, slot,
-                                             MOD_LOG_KEY_REMOVE);
-               BUG_ON(ret < 0);
-       }
-
        nritems = btrfs_header_nritems(parent);
        if (slot != nritems - 1) {
                if (level)
@@ -4627,6 +4621,10 @@ static void del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root,
                              btrfs_node_key_ptr_offset(slot + 1),
                              sizeof(struct btrfs_key_ptr) *
                              (nritems - slot - 1));
+       } else if (level) {
+               ret = tree_mod_log_insert_key(root->fs_info, parent, slot,
+                                             MOD_LOG_KEY_REMOVE);
+               BUG_ON(ret < 0);
        }
 
        nritems--;