]> git.hungrycats.org Git - linux/commitdiff
Revert "btrfs: tree mod log fix for fdmanana"
authorZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Sat, 6 Mar 2021 14:30:15 +0000 (09:30 -0500)
committerZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Sat, 6 Mar 2021 14:44:40 +0000 (09:44 -0500)
This reverts commit 7979e557fa1dd6937722e3b44d7d7c7642d9a4d5.

fs/btrfs/extent-tree.c

index 9563460d78ee78eea7854b8b55ac5ce4fc951662..b5f24bb879713af9be0a440908c2d4e3489ae5d4 100644 (file)
@@ -3347,12 +3347,25 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
 
                cache = btrfs_lookup_block_group(fs_info, buf->start);
 
-               if (!btrfs_header_flag(buf, BTRFS_HEADER_FLAG_WRITTEN) &&
-                   btrfs_is_zoned(fs_info))
+               if (btrfs_header_flag(buf, BTRFS_HEADER_FLAG_WRITTEN)) {
+                       pin_down_extent(trans, cache, buf->start, buf->len, 1);
+                       btrfs_put_block_group(cache);
+                       goto out;
+               }
+
+               if (btrfs_is_zoned(fs_info)) {
                        btrfs_redirty_list_add(trans->transaction, buf);
+                       pin_down_extent(trans, cache, buf->start, buf->len, 1);
+                       btrfs_put_block_group(cache);
+                       goto out;
+               }
+
+               WARN_ON(test_bit(EXTENT_BUFFER_DIRTY, &buf->bflags));
 
-               pin_down_extent(trans, cache, buf->start, buf->len, 1);
+               btrfs_add_free_space(cache, buf->start, buf->len);
+               btrfs_free_reserved_bytes(cache, buf->len, 0);
                btrfs_put_block_group(cache);
+               trace_btrfs_reserved_extent_free(fs_info, buf->start, buf->len);
        }
 out:
        if (last_ref) {