[lvm-devel] LVM2/libdm libdm-common.c

agk at sourceware.org agk at sourceware.org
Tue Jun 28 09:24:14 UTC 2011


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2011-06-28 09:24:14

Modified files:
	libdm          : libdm-common.c 

Log message:
	more fixes to readahead etc.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-common.c.diff?cvsroot=lvm2&r1=1.120&r2=1.121

--- LVM2/libdm/libdm-common.c	2011/06/27 22:38:53	1.120
+++ LVM2/libdm/libdm-common.c	2011/06/28 09:24:13	1.121
@@ -864,13 +864,6 @@
 	char *pos;
 
 	/*
-	 * Clear warn_if_udev_failed if rely_on_udev is set.  It doesn't get
-	 * checked in this case - this just removes the flag from log messages.
-	 */
-	if (rely_on_udev)
-		warn_if_udev_failed = 0;
-
-	/*
 	 * Note: warn_if_udev_failed must have valid content
 	 */
 	if ((type == NODE_DEL) && _other_node_ops(type))
@@ -911,10 +904,16 @@
 		 */
 		dm_list_iterate_safe(noph, nopht, &_node_ops) {
 			nop = dm_list_item(noph, struct node_op_parms);
-			if (!strcmp(old_name, nop->dev_name))
+			if (!strcmp(old_name, nop->dev_name)) {
 				_log_node_op("Unstacking", nop);
 				_del_node_op(nop);
+			}
 		}
+	else if (type == NODE_READ_AHEAD) {
+		/* udev doesn't process readahead */
+		rely_on_udev = 0;
+		warn_if_udev_failed = 0;
+	}
 
 	if (!(nop = dm_malloc(sizeof(*nop) + len))) {
 		log_error("Insufficient memory to stack mknod operation");
@@ -930,9 +929,14 @@
 	nop->mode = mode;
 	nop->read_ahead = read_ahead;
 	nop->read_ahead_flags = read_ahead_flags;
-	nop->warn_if_udev_failed = warn_if_udev_failed;
 	nop->rely_on_udev = rely_on_udev;
 
+	/*
+	 * Clear warn_if_udev_failed if rely_on_udev is set.  It doesn't get
+	 * checked in this case - this just removes the flag from log messages.
+	 */
+	nop->warn_if_udev_failed = rely_on_udev ? 0 : warn_if_udev_failed;
+
 	_store_str(&pos, &nop->dev_name, dev_name);
 	_store_str(&pos, &nop->old_name, old_name);
 




More information about the lvm-devel mailing list