]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: return ENODATA in case RST lookup fails
authorJohannes Thumshirn <johannes.thumshirn@wdc.com>
Mon, 7 Oct 2024 11:52:47 +0000 (13:52 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 11 Nov 2024 13:34:14 +0000 (14:34 +0100)
In case a lookup in the RAID stripe-tree fails, return ENODATA instead of
ENOENT to better distinguish stripe-tree lookups from other code paths
where we return ENOENT.

Suggested-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/raid-stripe-tree.c

index b7787a8e4af295498f2460ae22c0a6f0e91b2ea3..41970bbdb05f63b052389009bae25224ecebdcb6 100644 (file)
@@ -234,7 +234,7 @@ int btrfs_get_raid_extent_offset(struct btrfs_fs_info *fs_info,
                found_end = found_logical + found_length;
 
                if (found_logical > end) {
-                       ret = -ENOENT;
+                       ret = -ENODATA;
                        goto out;
                }
 
@@ -280,10 +280,10 @@ int btrfs_get_raid_extent_offset(struct btrfs_fs_info *fs_info,
        }
 
        /* If we're here, we haven't found the requested devid in the stripe. */
-       ret = -ENOENT;
+       ret = -ENODATA;
 out:
        if (ret > 0)
-               ret = -ENOENT;
+               ret = -ENODATA;
        if (ret && ret != -EIO && !stripe->rst_search_commit_root) {
                btrfs_debug(fs_info,
                "cannot find raid-stripe for logical [%llu, %llu] devid %llu, profile %s",