btrfs-progs: dump-super: print actual metadata_uuid value

The function btrfs_print_superblock() prints all members of the
superblock as they are, except for the superblock::metadata_uuid.
If the METADATA_UUID flag is unset, it prints the fsid instead of
zero as in the superblock::metadata_uuid.

Perhaps this was done because to match with the kernel
btrfs_fs_devices::metadata_uuid value as it also sets fsid if
METADATA_UUID flag is unset.

However, the actual superblock::metadata_uuid is always zero if the
METADATA_UUID flag is unset. Just to mention the kernel does not alter
the superblock::metadata_uuid value any time.

The dump-super printing fsid instead of zero, is confusing because we
generally expect dump_super to print the superblock value in the raw
format without modification.

Fix this by printing the actual metadata_uuid value instead of fsid.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Anand Jain 2023-08-03 07:29:37 +08:00 committed by David Sterba
parent cb19235991
commit 1d988f3638

View file

@ -2005,12 +2005,8 @@ void btrfs_print_superblock(struct btrfs_super_block *sb, int full)
uuid_unparse(sb->fsid, buf);
printf("fsid\t\t\t%s\n", buf);
if (metadata_uuid_present) {
uuid_unparse(sb->metadata_uuid, buf);
printf("metadata_uuid\t\t%s\n", buf);
} else {
printf("metadata_uuid\t\t%s\n", buf);
}
uuid_unparse(sb->metadata_uuid, buf);
printf("metadata_uuid\t\t%s\n", buf);
printf("label\t\t\t");
s = sb->label;