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
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;
}
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;
}