[lvm-devel] main - debug: more tracing

Zdenek Kabelac zkabelac at sourceware.org
Wed Mar 10 00:36:35 UTC 2021


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=75037bee5d92023718a1b9f0725152b4512e4349
Commit:        75037bee5d92023718a1b9f0725152b4512e4349
Parent:        d01c17ff229beb1cfe9d6331fbd35637866412ec
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Wed Mar 10 01:26:30 2021 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Wed Mar 10 01:27:13 2021 +0100

debug: more tracing

Check result of device_ids_write() and at least provide stack;
---
 lib/device/device_id.c | 10 ++++++----
 lib/label/label.c      |  6 ++++--
 tools/toollib.c        |  3 ++-
 3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/lib/device/device_id.c b/lib/device/device_id.c
index 4b7214b60..74edae05c 100644
--- a/lib/device/device_id.c
+++ b/lib/device/device_id.c
@@ -689,7 +689,8 @@ int device_ids_write(struct cmd_context *cmd)
 	}
 
 	if ((dir_fd = open(dirpath, O_RDONLY)) < 0) {
-		fclose(fp);
+		if (fclose(fp))
+                        log_sys_debug("fclose", tmpfile);
 		ret = 0;
 		goto out;
 	}
@@ -782,9 +783,10 @@ static void _device_ids_update_try(struct cmd_context *cmd)
 	if (!lock_devices_file_try(cmd, LOCK_EX, &held)) {
 		log_debug("Skip devices file update (busy).");
 	} else {
-		if (device_ids_version_unchanged(cmd))
-			device_ids_write(cmd);
-		else
+		if (device_ids_version_unchanged(cmd)) {
+			if (!device_ids_write(cmd))
+				stack;
+		} else
 			log_debug("Skip devices file update (changed).");
 	}
 	if (!held)
diff --git a/lib/label/label.c b/lib/label/label.c
index 8cbed7dd8..f305ac735 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -582,7 +582,8 @@ retry_open:
 
 	if (di == -1) {
 		log_error("Failed to set bcache fd.");
-		close(fd);
+		if (close(fd))
+			log_sys_debug("close", name);
 		dev->bcache_fd = -1;
 		return 0;
 	}
@@ -1592,7 +1593,8 @@ int label_scan_reopen_rw(struct device *dev)
 	if (!bcache_change_fd(dev->bcache_di, fd)) {
 		log_error("Failed to change to rw fd %s di %d fd %d.",
 			  dev_name(dev), dev->bcache_di, fd);
-		close(fd);
+		if (close(fd))
+			log_sys_debug("close", dev_name(dev));
 		return 0;
 	}
 
diff --git a/tools/toollib.c b/tools/toollib.c
index c8540b005..b9be54ebb 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -5770,7 +5770,8 @@ do_command:
 	}
 
 	/* TODO: when vgcreate uses only existing PVs this doesn't change and can be skipped */
-	device_ids_write(cmd);
+	if (!device_ids_write(cmd))
+		stack;
 
 	/*
 	 * Don't keep devs open excl in bcache because the excl will prevent




More information about the lvm-devel mailing list