1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

dmstats: use canonical path when reporting errors

When a 'dmstats create --filemap' operation fails (e.g. during
open(2), close(2), or dm_stats_create_regions_from_fd()), use the
canonical version of the path. This avoids cryptic/confusing error
messages when symbolic links exist in the path argument given:

  # findmnt /var/lib/libvirt/images -otarget,source
  TARGET                  SOURCE
  /var/lib/libvirt/images /dev/mapper/vg_hex-lv_images

  # readlink /var/lib/libvirt/images/my.img
  /boot/my.img

  # dmstats create --filemap /var/lib/libvirt/images/my.img
  Cannot map file: not a device-mapper device.
  Could not create regions from file /var/lib/libvirt/images/my.img
  Command failed

Using the canonical path the error is immediately obvious:

  # dmstats create --filemap /var/lib/libvirt/images/my.img
  Cannot map file: not a device-mapper device.
  Could not create regions from file /boot/my.img
  Command failed
This commit is contained in:
Bryn M. Reeves 2016-07-08 17:06:35 +01:00
parent 9ac84614f4
commit e2d8ac9dd9

View File

@ -5034,7 +5034,7 @@ static int _stats_create_file(CMD_ARGS)
fd = open(abspath, O_RDONLY);
if (fd < 0) {
log_error("Could not open %s for reading", path);
log_error("Could not open %s for reading", abspath);
goto bad;
}
@ -5060,12 +5060,12 @@ static int _stats_create_file(CMD_ARGS)
bounds, alias);
if (close(fd))
log_error("Error closing %s", path);
log_error("Error closing %s", abspath);
fd = -1;
if (!regions) {
log_error("Could not create regions from file %s", path);
log_error("Could not create regions from file %s", abspath);
goto bad;
}