Commit 25984a5a authored by Anand Jain's avatar Anand Jain Committed by David Sterba

btrfs: consolidate uuid comparisons in btrfs_validate_super

There are three ways the fsid is validated in btrfs_validate_super():

- verify that super_copy::fsid is the same as fs_devices::fsid

- if the metadata_uuid flag is set, verify if super_copy::metadata_uuid
  and fs_devices::metadata_uuid are the same.

- a few lines below, often missed out, verify if dev_item::fsid is the
  same as fs_devices::metadata_uuid.

The function btrfs_validate_super() contains multiple if-statements with
memcmp() to check UUIDs. This patch consolidates them into a single
location.
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent a3c54b0b
...@@ -2399,6 +2399,14 @@ int btrfs_validate_super(struct btrfs_fs_info *fs_info, ...@@ -2399,6 +2399,14 @@ int btrfs_validate_super(struct btrfs_fs_info *fs_info,
ret = -EINVAL; ret = -EINVAL;
} }
if (memcmp(fs_info->fs_devices->metadata_uuid, sb->dev_item.fsid,
BTRFS_FSID_SIZE) != 0) {
btrfs_err(fs_info,
"dev_item UUID does not match metadata fsid: %pU != %pU",
fs_info->fs_devices->metadata_uuid, sb->dev_item.fsid);
ret = -EINVAL;
}
/* /*
* Artificial requirement for block-group-tree to force newer features * Artificial requirement for block-group-tree to force newer features
* (free-space-tree, no-holes) so the test matrix is smaller. * (free-space-tree, no-holes) so the test matrix is smaller.
...@@ -2411,14 +2419,6 @@ int btrfs_validate_super(struct btrfs_fs_info *fs_info, ...@@ -2411,14 +2419,6 @@ int btrfs_validate_super(struct btrfs_fs_info *fs_info,
ret = -EINVAL; ret = -EINVAL;
} }
if (memcmp(fs_info->fs_devices->metadata_uuid, sb->dev_item.fsid,
BTRFS_FSID_SIZE) != 0) {
btrfs_err(fs_info,
"dev_item UUID does not match metadata fsid: %pU != %pU",
fs_info->fs_devices->metadata_uuid, sb->dev_item.fsid);
ret = -EINVAL;
}
/* /*
* Hint to catch really bogus numbers, bitflips or so, more exact checks are * Hint to catch really bogus numbers, bitflips or so, more exact checks are
* done later * done later
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment