mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
btrfs: drop redundant check to use fs_devices::metadata_uuid
fs_devices::metadata_uuid value is already updated based on the super_block::METADATA_UUID flag for either fsid or metadata_uuid as appropriate. So, fs_devices::metadata_uuid can be used directly. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Tested-by: Guilherme G. Piccoli <gpiccoli@igalia.com> Signed-off-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
6bfe3959b0
commit
67bc5ad04b
@ -313,21 +313,16 @@ static bool check_tree_block_fsid(struct extent_buffer *eb)
|
||||
struct btrfs_fs_info *fs_info = eb->fs_info;
|
||||
struct btrfs_fs_devices *fs_devices = fs_info->fs_devices, *seed_devs;
|
||||
u8 fsid[BTRFS_FSID_SIZE];
|
||||
u8 *metadata_uuid;
|
||||
|
||||
read_extent_buffer(eb, fsid, offsetof(struct btrfs_header, fsid),
|
||||
BTRFS_FSID_SIZE);
|
||||
/*
|
||||
* Checking the incompat flag is only valid for the current fs. For
|
||||
* seed devices it's forbidden to have their uuid changed so reading
|
||||
* ->fsid in this case is fine
|
||||
*/
|
||||
if (btrfs_fs_incompat(fs_info, METADATA_UUID))
|
||||
metadata_uuid = fs_devices->metadata_uuid;
|
||||
else
|
||||
metadata_uuid = fs_devices->fsid;
|
||||
|
||||
if (!memcmp(fsid, metadata_uuid, BTRFS_FSID_SIZE))
|
||||
/*
|
||||
* alloc_fs_devices() copies the fsid into metadata_uuid if the
|
||||
* metadata_uuid is unset in the superblock, including for a seed device.
|
||||
* So, we can use fs_devices->metadata_uuid.
|
||||
*/
|
||||
if (memcmp(fsid, fs_info->fs_devices->metadata_uuid, BTRFS_FSID_SIZE) == 0)
|
||||
return false;
|
||||
|
||||
list_for_each_entry(seed_devs, &fs_devices->seed_list, seed_list)
|
||||
|
Loading…
Reference in New Issue
Block a user