[lvm-devel] master - dmstats: use canonical path when reporting errors

Bryn Reeves bmr at fedoraproject.org
Fri Jul 8 18:27:10 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=5cd39f1dc4013d5d9b150abe544187413daeaac9
Commit:        5cd39f1dc4013d5d9b150abe544187413daeaac9
Parent:        17cbcc85bdd31d6b1e0d3af8e43c39a8c58561b5
Author:        Bryn M. Reeves <bmr at redhat.com>
AuthorDate:    Fri Jul 8 17:06:35 2016 +0100
Committer:     Bryn M. Reeves <bmr at redhat.com>
CommitterDate: Fri Jul 8 17:27:52 2016 +0100

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
---
 tools/dmsetup.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/dmsetup.c b/tools/dmsetup.c
index eb7c83a..34e33d3 100644
--- a/tools/dmsetup.c
+++ b/tools/dmsetup.c
@@ -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;
 	}
 




More information about the lvm-devel mailing list