[lvm-devel] LVM2 ./WHATS_NEW lib/activate/fs.c lib/misc/lv ...

prajnoha at sourceware.org prajnoha at sourceware.org
Mon Jan 11 15:40:05 UTC 2010


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	prajnoha at sourceware.org	2010-01-11 15:40:04

Modified files:
	.              : WHATS_NEW 
	lib/activate   : fs.c 
	lib/misc       : lvm-globals.c lvm-globals.h 
	tools          : lvmcmdline.c 

Log message:
	Add support to disable udev checking: LVM_UDEV_DISABLE_CHECKING=1 env. var.
	
	LVM_UDEV_DISABLE_CHECKING=1 applies for /dev/<vgname> content only.
	We still need to define DM_UDEV_DISABLE_CHECKING=1 for /dev/mapper content.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1377&r2=1.1378
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/fs.c.diff?cvsroot=lvm2&r1=1.50&r2=1.51
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/misc/lvm-globals.c.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/misc/lvm-globals.h.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvmcmdline.c.diff?cvsroot=lvm2&r1=1.109&r2=1.110

--- LVM2/WHATS_NEW	2010/01/08 22:32:35	1.1377
+++ LVM2/WHATS_NEW	2010/01/11 15:40:03	1.1378
@@ -1,5 +1,6 @@
 Version 2.02.57 -
 ====================================
+  Add support to disable udev checking: LVM_UDEV_DISABLE_CHECKING=1 env. var.
   Add redundant mirror log option.
   Add capability to split off and keep mirror legs to lvconvert.
   Change background polldaemon's process name to "(lvm2)".
--- LVM2/lib/activate/fs.c	2010/01/07 19:54:21	1.50
+++ LVM2/lib/activate/fs.c	2010/01/11 15:40:03	1.51
@@ -166,7 +166,7 @@
 			return 0;
 		}
 
-		if (dm_udev_get_sync_support() && check_udev) {
+		if (dm_udev_get_sync_support() && udev_checking() && check_udev) {
 			/* Check udev created the correct link. */
 			if (!stat(link_path, &buf_lp) &&
 			    !stat(lv_path, &buf)) {
@@ -190,7 +190,7 @@
 			log_sys_error("unlink", lv_path);
 			return 0;
 		}
-	} else if (dm_udev_get_sync_support() && check_udev)
+	} else if (dm_udev_get_sync_support() && udev_checking() && check_udev)
 		log_warn("The link %s should had been created by udev "
 			  "but it was not found. Falling back to "
 			  "direct link creation.", lv_path);
@@ -221,7 +221,7 @@
 
 	if (lstat(lv_path, &buf) && errno == ENOENT)
 		return 1;
-	else if (dm_udev_get_sync_support() && check_udev)
+	else if (dm_udev_get_sync_support() && udev_checking() && check_udev)
 		log_warn("The link %s should have been removed by udev "
 			 "but it is still present. Falling back to "
 			 "direct link removal.", lv_path);
--- LVM2/lib/misc/lvm-globals.c	2010/01/05 20:56:51	1.4
+++ LVM2/lib/misc/lvm-globals.c	2010/01/11 15:40:04	1.5
@@ -39,6 +39,7 @@
 static int _ignore_suspended_devices = 0;
 static int _error_message_produced = 0;
 static unsigned _is_static = 0;
+static int _udev_checking = 1;
 
 void init_verbose(int level)
 {
@@ -112,6 +113,14 @@
 	_is_static = value;
 }
 
+void init_udev_checking(int checking)
+{
+	if ((_udev_checking = checking))
+		log_debug("LVM udev checking enabled");
+	else
+		log_debug("LVM udev checking disabled");
+}
+
 void set_cmd_name(const char *cmd)
 {
 	strncpy(_cmd_name, cmd, sizeof(_cmd_name));
@@ -210,3 +219,8 @@
 {
 	return _is_static;
 }
+
+int udev_checking(void)
+{
+	return _udev_checking;
+}
--- LVM2/lib/misc/lvm-globals.h	2010/01/05 20:56:51	1.5
+++ LVM2/lib/misc/lvm-globals.h	2010/01/11 15:40:04	1.6
@@ -36,6 +36,7 @@
 void init_ignore_suspended_devices(int ignore);
 void init_error_message_produced(int produced);
 void init_is_static(unsigned value);
+void init_udev_checking(int checking);
 
 void set_cmd_name(const char *cmd_name);
 
@@ -54,6 +55,7 @@
 int ignore_suspended_devices(void);
 const char *log_command_name(void);
 unsigned is_static(void);
+int udev_checking(void);
 
 #define DMEVENTD_MONITOR_IGNORE -1
 int dmeventd_monitor_mode(void);
--- LVM2/tools/lvmcmdline.c	2009/12/16 19:22:13	1.109
+++ LVM2/tools/lvmcmdline.c	2010/01/11 15:40:04	1.110
@@ -909,6 +909,19 @@
 	cmd->handles_missing_pvs = 0;
 }
 
+static void _set_udev_checking()
+{
+	const char *e;
+
+	if ((e = getenv("DM_UDEV_DISABLE_CHECKING")) &&
+		!strcmp(e, "1"))
+		dm_udev_set_checking(0);
+
+	if ((e = getenv("LVM_UDEV_DISABLE_CHECKING")) &&
+		!strcmp(e, "1"))
+		init_udev_checking(0);
+}
+
 static const char *_copy_command_line(struct cmd_context *cmd, int argc, char **argv)
 {
 	int i, space;
@@ -1003,6 +1016,8 @@
 	log_debug("O_DIRECT will be used");
 #endif
 
+	_set_udev_checking();
+
 	if ((ret = _process_common_commands(cmd)))
 		goto_out;
 




More information about the lvm-devel mailing list