[lvm-devel] LVM2 ./WHATS_NEW lib/activate/dev_manager.c

zkabelac at sourceware.org zkabelac at sourceware.org
Mon Mar 5 14:15:51 UTC 2012


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2012-03-05 14:15:50

Modified files:
	.              : WHATS_NEW 
	lib/activate   : dev_manager.c 

Log message:
	Improve warning
	
	Use thin_dump --repair suggestion in log error message
	and use just warning on  deactivation path without repair info
	(since node has been deactivated).
	
	Also check whether there is not 16 args for thin_check configured.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2342&r2=1.2343
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.273&r2=1.274

--- LVM2/WHATS_NEW	2012/03/05 14:12:57	1.2342
+++ LVM2/WHATS_NEW	2012/03/05 14:15:50	1.2343
@@ -1,5 +1,6 @@
 Version 2.02.95 -
 ================================
+  Print just warning on thin pool check callback path for failing check.
   Use 64bit math for verification of thin pool and snapshot chunk size.
   Validate udev structures in _insert_udev_dir().
   Scan all devices for lvmetad if 'pvscan --cache' used without device list.
--- LVM2/lib/activate/dev_manager.c	2012/03/02 21:49:44	1.273
+++ LVM2/lib/activate/dev_manager.c	2012/03/05 14:15:50	1.274
@@ -1231,15 +1231,28 @@
 	}
 
 	args = dm_split_words(split, 16, 0, argv);
+
+	if (args == 16) {
+		log_error("Too many options for thin check command.");
+		return 0;
+	}
 	argv[args++] = meta_path;
 	argv[args] = NULL;
 
 	if (!(ret = exec_cmd(data->pool_lv->vg->cmd, (const char * const *)argv,
 			     &status, 0))) {
-		log_err_once("Check of thin pool %s/%s failed (status:%d). "
-			     "Manual repair required (thin_repair %s)!",
-			     data->pool_lv->vg->name, data->pool_lv->name,
-			     status, meta_path);
+		switch (type) {
+		case DM_NODE_CALLBACK_PRELOADED:
+			log_err_once("Check of thin pool %s/%s failed (status:%d). "
+				     "Manual repair required (thin_dump --repair %s)!",
+				     data->pool_lv->vg->name, data->pool_lv->name,
+				     status, meta_path);
+			break;
+		default:
+			log_warn("WARNING: Integrity check of metadata for thin pool "
+				 "%s/%s failed.",
+				 data->pool_lv->vg->name, data->pool_lv->name);
+		}
 		/*
 		 * FIXME: What should we do here??
 		 *




More information about the lvm-devel mailing list