btrfs-progs: fi show: print missing device for a mounted file system
Currently when a device is missing for a mounted filesystem the output that is produced is unhelpful: Label: none uuid: 139ef309-021f-4b98-a3a8-ce230a83b1e2 Total devices 2 FS bytes used 128.00KiB devid 1 size 5.00GiB used 1.26GiB path /dev/loop0 *** Some devices missing While the context which prints this is perfectly capable of showing which device exactly is missing, like so: Label: none uuid: 4a85a40b-9b79-4bde-8e52-c65a550a176b Total devices 2 FS bytes used 128.00KiB devid 1 size 5.00GiB used 1.26GiB path /dev/loop0 devid 2 size 0 used 0 path /dev/loop1 MISSING This is a lot more usable output as it presents the user with the id of the missing device and its path. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
963188943f
commit
957a79c9b0
|
@ -296,7 +296,6 @@ static int print_one_fs(struct btrfs_ioctl_fs_info_args *fs_info,
|
|||
{
|
||||
int i;
|
||||
int fd;
|
||||
int missing = 0;
|
||||
char uuidbuf[BTRFS_UUID_UNPARSED_SIZE];
|
||||
struct btrfs_ioctl_dev_info_args *tmp_dev_info;
|
||||
int ret;
|
||||
|
@ -326,8 +325,10 @@ static int print_one_fs(struct btrfs_ioctl_fs_info_args *fs_info,
|
|||
/* Add check for missing devices even mounted */
|
||||
fd = open((char *)tmp_dev_info->path, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
missing = 1;
|
||||
printf("\tdevid %4llu size 0 used 0 path %s MISSING\n",
|
||||
tmp_dev_info->devid, tmp_dev_info->path);
|
||||
continue;
|
||||
|
||||
}
|
||||
close(fd);
|
||||
canonical_path = path_canonicalize((char *)tmp_dev_info->path);
|
||||
|
@ -340,8 +341,6 @@ static int print_one_fs(struct btrfs_ioctl_fs_info_args *fs_info,
|
|||
free(canonical_path);
|
||||
}
|
||||
|
||||
if (missing)
|
||||
printf("\t*** Some devices missing\n");
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue