]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: lift assertions to beginning of insert_delayed_ref()
authorDavid Sterba <dsterba@suse.com>
Tue, 14 Apr 2026 15:30:32 +0000 (17:30 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 8 Jun 2026 13:53:28 +0000 (15:53 +0200)
There are only two possible types of the delayed ref action, this can be
verified at the beginning for the whole function and not just one block.
Replace the assertion with a debugging warning just in case.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/delayed-ref.c

index 605858c2d9a95223722cc974f76ed3035211a743..8bc1929237f70a720d8bc5b9959c53b978370c4c 100644 (file)
@@ -615,6 +615,9 @@ static bool insert_delayed_ref(struct btrfs_trans_handle *trans,
        struct btrfs_delayed_ref_node *exist;
        int mod;
 
+       ASSERT(ref->action == BTRFS_ADD_DELAYED_REF ||
+              ref->action == BTRFS_DROP_DELAYED_REF);
+
        spin_lock(&href->lock);
        exist = tree_insert(&href->ref_tree, ref);
        if (!exist) {
@@ -641,7 +644,7 @@ static bool insert_delayed_ref(struct btrfs_trans_handle *trans,
                                ASSERT(!list_empty(&exist->add_list));
                                list_del_init(&exist->add_list);
                        } else {
-                               ASSERT(0);
+                               DEBUG_WARN();
                        }
                } else
                        mod = -ref->ref_mod;