diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 980e85a264c045359fe679323bd3a626b49db748..ae798c1d088b55f21e9e9fbd1b5f94d81ae58662 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -911,7 +911,6 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, while (!list_empty(&prefs)) { ref = list_first_entry(&prefs, struct __prelim_ref, list); - list_del(&ref->list); WARN_ON(ref->count < 0); if (ref->count && ref->root_id && ref->parent == 0) { /* no parent == root of tree */ @@ -956,6 +955,7 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, eie->next = ref->inode_list; } } + list_del(&ref->list); kfree(ref); }