mirror of
https://github.com/kdave/btrfs-progs
synced 2025-05-03 08:27:56 +00:00
btrfs-progs: mkfs: print the summary
This patch prints the summary of the filesystem after the creation. The main fileds printed are: - devices list with their uuid, devid, path and size - raid profile (dup,single,raid0...) - leafsize/nodesize/sectorsize - filesystem features (raid56, extref, mixed-bg) - chunk size and type If the '-v' switched is passed, the output is more verbose; if the '-q' switched is passed, only the errors are printed. Below an example: BTRFS filesystem summary: Label: btrfs-test UUID: 14ae8a88-98ac-4f22-8441-79f76ec622f7 Node size: 4096 Leaf size: 4096 Sector size: 4096 Initial chunks: Data+Metadata: 9.01GiB System: 18.06MiB Metadata profile: RAID5 Data profile: RAID5 Mixed mode: YES SSD detected: NO Incompat features: mixed-bg, extref, raid56 Number of devices: 10 UUID ID SIZE PATH ------------------------------------ -- --------- ----------- df1c7f50-1980-4da2-8bc9-7ee6ffb0b554 1 50.00GiB /dev/vdb 32c808a0-cd7b-4497-a2c0-1d77a9854af9 2 50.00GiB /dev/vdc 3159782e-d108-40bc-9e15-090ecac160b4 3 50.00GiB /dev/vdd db7eaf0c-beb8-4093-a9d0-b9c25c146305 4 50.00GiB /dev/vde c367ca04-1f71-49c0-a331-11fc0b87e9fc 5 50.00GiB /dev/vdf e9b73c86-4058-4b3a-90ac-18741a276e70 6 50.00GiB /dev/vdg c4298b7a-ad41-4690-bf10-bf748b319413 7 50.00GiB /dev/vdh 1cf048c8-af8a-4225-b09a-5d12e9b217fa 8 2.00GiB /dev/vdi 7e157869-768a-4725-bad5-82e6bd05fd17 9 2.00GiB /dev/vdj 2c9431ac-c7f0-45a5-8529-cef8cf6e4033 10 2.00GiB /dev/vdk Total devices size: 356.01GiB Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
23bc56c0e8
commit
3afd86683b
79
mkfs.c
79
mkfs.c
@ -1132,13 +1132,43 @@ static int is_ssd(const char *file)
|
||||
return !atoi((const char *)&rotational);
|
||||
}
|
||||
|
||||
static void list_all_devices(struct btrfs_root *root)
|
||||
{
|
||||
struct btrfs_fs_devices *fs_devices;
|
||||
struct btrfs_device *device;
|
||||
int number_of_devices = 0;
|
||||
u64 total_block_count = 0;
|
||||
|
||||
fs_devices = root->fs_info->fs_devices;
|
||||
|
||||
list_for_each_entry(device, &fs_devices->devices, dev_list)
|
||||
number_of_devices++;
|
||||
|
||||
printf(" Number of devices:\t%d\n", number_of_devices);
|
||||
printf(" UUID ID SIZE PATH\n");
|
||||
printf(" ------------------------------------ -- --------- -----------\n");
|
||||
list_for_each_entry_reverse(device, &fs_devices->devices, dev_list) {
|
||||
char dev_uuid[BTRFS_UUID_UNPARSED_SIZE];
|
||||
|
||||
uuid_unparse(device->uuid, dev_uuid);
|
||||
printf(" %s %3llu %10s %s\n",
|
||||
dev_uuid, device->devid,
|
||||
pretty_size(device->total_bytes),
|
||||
device->name);
|
||||
total_block_count += device->total_bytes;
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
printf(" Total devices size: %10s\n",
|
||||
pretty_size(total_block_count));
|
||||
}
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
char *file;
|
||||
struct btrfs_root *root;
|
||||
struct btrfs_trans_handle *trans;
|
||||
char *label = NULL;
|
||||
char *first_file;
|
||||
u64 block_count = 0;
|
||||
u64 dev_block_count = 0;
|
||||
u64 blocks[7];
|
||||
@ -1423,7 +1453,6 @@ int main(int ac, char **av)
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
first_file = file;
|
||||
ret = btrfs_prepare_device(fd, file, zero_end, &dev_block_count,
|
||||
block_count, &mixed, discard);
|
||||
if (ret) {
|
||||
@ -1441,7 +1470,6 @@ int main(int ac, char **av)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
first_file = file;
|
||||
source_dir_size = size_sourcedir(source_dir, sectorsize,
|
||||
&num_of_meta_chunks, &size_of_data);
|
||||
if(block_count < source_dir_size)
|
||||
@ -1485,9 +1513,6 @@ int main(int ac, char **av)
|
||||
features |= BTRFS_FEATURE_INCOMPAT_RAID56;
|
||||
}
|
||||
|
||||
if (verbose)
|
||||
btrfs_process_fs_features(features);
|
||||
|
||||
ret = make_btrfs(fd, file, label, fs_uuid, blocks, dev_block_count,
|
||||
nodesize, sectorsize, stripesize, features);
|
||||
if (ret) {
|
||||
@ -1576,13 +1601,6 @@ raid_groups:
|
||||
ret = create_data_reloc_tree(trans, root);
|
||||
BUG_ON(ret);
|
||||
|
||||
if (verbose) {
|
||||
printf(
|
||||
"fs created label %s on %s\n\tnodesize %u leafsize %u sectorsize %u size %s\n",
|
||||
label, first_file, nodesize, nodesize, sectorsize,
|
||||
pretty_size(btrfs_super_total_bytes(root->fs_info->super_copy)));
|
||||
}
|
||||
|
||||
btrfs_commit_transaction(trans, root);
|
||||
|
||||
if (source_dir_set) {
|
||||
@ -1597,6 +1615,41 @@ raid_groups:
|
||||
BUG_ON(ret);
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
char features_buf[64];
|
||||
|
||||
printf("BTRFS filesystem summary:\n");
|
||||
printf(" Label:\t\t%s\n", label);
|
||||
printf(" UUID:\t\t\t%s\n", fs_uuid);
|
||||
printf("\n");
|
||||
|
||||
printf(" Node size:\t\t%u\n", nodesize);
|
||||
printf(" Sector size:\t\t%u\n", sectorsize);
|
||||
printf(" Initial chunks:\n");
|
||||
if (allocation.data)
|
||||
printf(" Data:\t\t%s\n",
|
||||
pretty_size(allocation.data));
|
||||
if (allocation.metadata)
|
||||
printf(" Metadata:\t\t%s\n",
|
||||
pretty_size(allocation.metadata));
|
||||
if (allocation.mixed)
|
||||
printf(" Data+Metadata:\t%s\n",
|
||||
pretty_size(allocation.mixed));
|
||||
printf(" System:\t\t%s\n",
|
||||
pretty_size(allocation.system));
|
||||
printf(" Metadata profile:\t%s\n",
|
||||
btrfs_group_profile_str(metadata_profile));
|
||||
printf(" Data profile:\t\t%s\n",
|
||||
btrfs_group_profile_str(data_profile));
|
||||
printf(" Mixed mode:\t\t%s\n", mixed ? "YES" : "NO");
|
||||
printf(" SSD detected:\t\t%s\n", ssd ? "YES" : "NO");
|
||||
btrfs_parse_features_to_string(features_buf, features);
|
||||
printf(" Incompat features:\t%s", features_buf);
|
||||
printf("\n");
|
||||
|
||||
list_all_devices(root);
|
||||
}
|
||||
|
||||
ret = close_ctree(root);
|
||||
BUG_ON(ret);
|
||||
free(label);
|
||||
|
Loading…
Reference in New Issue
Block a user