diff options
author | Qu Wenruo <wqu@suse.com> | 2022-06-13 15:06:35 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-06-22 18:13:12 +0200 |
commit | 19af63780c7b606ea995b98266d871dfe7b8d135 (patch) | |
tree | 40282a52eb6d5c31a54d05405e233f3f10fcf028 | |
parent | d9d38ab59f95342bbae2703e09bf8bfecbbd8f33 (diff) | |
download | linux-next-19af63780c7b606ea995b98266d871dfe7b8d135.tar.gz |
btrfs: warn about dev extents that are inside the reserved range
Btrfs on-disk format has reserved the first 1MiB for the primary super
block (at 64KiB offset) and bootloaders may also use this space.
This behavior is only introduced since v4.1 btrfs-progs release,
although kernel can ensure we never touch the reserved range of super
blocks, it's better to inform the end users, and a balance will resolve
the problem.
Signed-off-by: Qu Wenruo <wqu@suse.com>
[ update changelog and message ]
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/volumes.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index e6af960a6961..076040310f6f 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -7996,6 +7996,16 @@ static int verify_one_dev_extent(struct btrfs_fs_info *fs_info, goto out; } + /* + * Very old mkfs.btrfs (before v4.1) will not respect the reserved + * space. Although kernel can handle it without problem, better to warn + * the users. + */ + if (physical_offset < BTRFS_DEVICE_RANGE_RESERVED) + btrfs_warn(fs_info, + "devid %llu physical %llu len %llu inside the reserved space", + devid, physical_offset, physical_len); + for (i = 0; i < map->num_stripes; i++) { if (map->stripes[i].dev->devid == devid && map->stripes[i].physical == physical_offset) { |