btrfs: remove checks for a root with id 0 during backref walking
authorFilipe Manana <fdmanana@suse.com>
Tue, 11 Oct 2022 12:16:59 +0000 (13:16 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 5 Dec 2022 17:00:38 +0000 (18:00 +0100)
When doing backref walking to determine if an extent is shared, we are
testing the root_objectid of the given share_check struct is 0, but that
is an impossible case, since btrfs_is_data_extent_shared() always
initializes the root_objectid field with the id of the given root, and
no root can have an objectid of 0. So remove those checks.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/backref.c

index 18374a6..abac2e9 100644 (file)
@@ -719,8 +719,7 @@ static int resolve_indirect_refs(struct btrfs_fs_info *fs_info,
                        continue;
                }
 
-               if (sc && sc->root_objectid &&
-                   ref->root_id != sc->root_objectid) {
+               if (sc && ref->root_id != sc->root_objectid) {
                        free_pref(ref);
                        ret = BACKREF_FOUND_SHARED;
                        goto out;
@@ -1348,8 +1347,7 @@ again:
                 * and would retain their original ref->count < 0.
                 */
                if (roots && ref->count && ref->root_id && ref->parent == 0) {
-                       if (sc && sc->root_objectid &&
-                           ref->root_id != sc->root_objectid) {
+                       if (sc && ref->root_id != sc->root_objectid) {
                                ret = BACKREF_FOUND_SHARED;
                                goto out;
                        }