Message ID | 20210910083344.1876661-1-nborisov@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/2] btrfs-progs: fi show: Print missing device for a mounted file system | expand |
On 10/09/2021 10:33, Nikolay Borisov wrote: > 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> > --- Looks good, Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> but I think this also needs a patch for xfstests adjusting the filters.
On 10.09.21 г. 12:15, Johannes Thumshirn wrote: > 2021 10:33, Nikolay Borisov wrote: >> 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> >> --- > Looks good, > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> > > but I think this also needs a patch for xfstests adjusting the filters. > It does, I had sent one, but I need to send v2 to adjust for the removed ***, ah this bike shedding ...
On 10.09.21 г. 11:33, Nikolay Borisov wrote: > 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> > --- > > V2: > * Removed stars around MISSING Ping
Hi, > 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> > --- > > V2: > * Removed stars around MISSING > cmds/filesystem.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/cmds/filesystem.c b/cmds/filesystem.c > index db8433ba3542..dadd4c82a9b0 100644 > --- a/cmds/filesystem.c > +++ b/cmds/filesystem.c > @@ -295,7 +295,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; > @@ -325,8 +324,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); > @@ -339,8 +340,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; > } Need we also fix print_one_uuid()/print_devices()? There is pr_verbose(LOG_DEFAULT, "\t*** Some devices missing\n"); in print_one_uuid(); sorry that there is yet not a fix here. Best Regards Wang Yugui (wangyugui@e16-tech.com) 2022/12/22
diff --git a/cmds/filesystem.c b/cmds/filesystem.c index db8433ba3542..dadd4c82a9b0 100644 --- a/cmds/filesystem.c +++ b/cmds/filesystem.c @@ -295,7 +295,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; @@ -325,8 +324,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); @@ -339,8 +340,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; }
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> --- V2: * Removed stars around MISSING cmds/filesystem.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) -- 2.17.1