[lvm-devel] LVM2 ./WHATS_NEW daemons/clvmd/lvm-functions.c ...

agk at sourceware.org agk at sourceware.org
Fri Jan 19 22:21:48 UTC 2007


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2007-01-19 22:21:46

Modified files:
	.              : WHATS_NEW 
	daemons/clvmd  : lvm-functions.c 
	lib/activate   : activate.c activate.h 
	lib/locking    : cluster_locking.c locking.h 
	lib/log        : log.c log.h 
	lib/metadata   : segtype.h 
	lib/mirror     : mirrored.c 
	tools          : lvchange.c vgchange.c 

Log message:
	register->monitor etc.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.548&r2=1.549
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/lvm-functions.c.diff?cvsroot=lvm2&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/activate.c.diff?cvsroot=lvm2&r1=1.116&r2=1.117
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/activate.h.diff?cvsroot=lvm2&r1=1.52&r2=1.53
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/cluster_locking.c.diff?cvsroot=lvm2&r1=1.16&r2=1.17
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/locking.h.diff?cvsroot=lvm2&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/log/log.c.diff?cvsroot=lvm2&r1=1.35&r2=1.36
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/log/log.h.diff?cvsroot=lvm2&r1=1.32&r2=1.33
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/segtype.h.diff?cvsroot=lvm2&r1=1.15&r2=1.16
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/mirror/mirrored.c.diff?cvsroot=lvm2&r1=1.43&r2=1.44
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvchange.c.diff?cvsroot=lvm2&r1=1.76&r2=1.77
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgchange.c.diff?cvsroot=lvm2&r1=1.55&r2=1.56

--- LVM2/WHATS_NEW	2007/01/18 22:33:24	1.548
+++ LVM2/WHATS_NEW	2007/01/19 22:21:44	1.549
@@ -1,5 +1,6 @@
 Version 2.02.20 -
 ===================================
+  Change remaining dmeventd terminology 'register' to 'monitor'.
   Update reporting man pages.
   No longer necessary to specify alignment for report fields.
 
--- LVM2/daemons/clvmd/lvm-functions.c	2006/10/24 18:49:31	1.25
+++ LVM2/daemons/clvmd/lvm-functions.c	2007/01/19 22:21:45	1.26
@@ -325,8 +325,8 @@
 	if (lock_flags & LCK_MIRROR_NOSYNC_MODE)
 		init_mirror_in_sync(1);
 
-	if (!(lock_flags & LCK_DMEVENTD_REGISTER_MODE))
-		init_dmeventd_register(0);
+	if (!(lock_flags & LCK_DMEVENTD_MONITOR_MODE))
+		init_dmeventd_monitor(0);
 
 	switch (command) {
 	case LCK_LV_EXCLUSIVE:
@@ -362,8 +362,8 @@
 	if (lock_flags & LCK_MIRROR_NOSYNC_MODE)
 		init_mirror_in_sync(0);
 
-	if (!(lock_flags & LCK_DMEVENTD_REGISTER_MODE))
-		init_dmeventd_register(DEFAULT_DMEVENTD_MONITOR);
+	if (!(lock_flags & LCK_DMEVENTD_MONITOR_MODE))
+		init_dmeventd_monitor(DEFAULT_DMEVENTD_MONITOR);
 
 	/* clean the pool for another command */
 	dm_pool_empty(cmd->mem);
--- LVM2/lib/activate/activate.c	2007/01/12 20:38:29	1.116
+++ LVM2/lib/activate/activate.c	2007/01/19 22:21:45	1.117
@@ -640,28 +640,23 @@
 }
 
 /*
- * register_dev_for_events
- *
- * This function uses proper error codes (but breaks convention)
- * to return:
- *      -1 on error
- *       0 if the lv's targets don't do event [un]registration
- *       0 if the lv is already [un]registered -- FIXME: not implemented
- *       1 if the lv had a segment which was [un]registered
- *
- * Returns: -1 on error
+ * Returns 0 if an attempt to (un)monitor the device failed.
+ * Returns 1 otherwise.
  */
-int register_dev_for_events(struct cmd_context *cmd,
-			    struct logical_volume *lv, int do_reg)
+int monitor_dev_for_events(struct cmd_context *cmd,
+			    struct logical_volume *lv, int monitor)
 {
 #ifdef DMEVENTD
-	int i, pending = 0, registered;
-	int r = 0;
+	int i, pending = 0, monitored;
+	int r = 1;
 	struct list *tmp;
 	struct lv_segment *seg;
-	int (*reg) (struct cmd_context *c, struct lv_segment *s, int e);
+	int (*monitor_fn) (struct cmd_context *c, struct lv_segment *s, int e);
 
-	if (do_reg && !dmeventd_register_mode())
+	/*
+	 * Nothing to do if dmeventd configured not to be used.
+	 */
+	if (monitor && !dmeventd_monitor_mode())
 		return 1;
 
 	list_iterate(tmp, &lv->segments) {
@@ -669,57 +664,61 @@
 
 		if (!seg_monitored(seg) || (seg->status & PVMOVE))
 			continue;
-		reg = NULL;
+
+		monitor_fn = NULL;
 
 		/* Check monitoring status */
-		if (seg->segtype->ops->target_registered)
-			registered = seg->segtype->ops->target_registered(seg, &pending);
+		if (seg->segtype->ops->target_monitored)
+			monitored = seg->segtype->ops->target_monitored(seg, &pending);
 		else
 			continue;  /* segtype doesn't support registration */
 
 		/*
 		 * FIXME: We should really try again if pending
 		 */
-		registered = (pending) ? 0 : registered;
+		monitored = (pending) ? 0 : monitored;
 
-		if (do_reg) {
-			if (registered)
+		if (monitor) {
+			if (monitored)
 				log_verbose("%s/%s already monitored.", lv->vg->name, lv->name);
-			else if (seg->segtype->ops->target_register_events)
-				reg = seg->segtype->ops->target_register_events;
+			else if (seg->segtype->ops->target_monitor_events)
+				monitor_fn = seg->segtype->ops->target_monitor_events;
 		} else {
-			if (!registered)
+			if (!monitored)
 				log_verbose("%s/%s already not monitored.", lv->vg->name, lv->name);
-			else if (seg->segtype->ops->target_unregister_events)
-				reg = seg->segtype->ops->target_unregister_events;
+			else if (seg->segtype->ops->target_unmonitor_events)
+				monitor_fn = seg->segtype->ops->target_unmonitor_events;
 		}
 
 		/* Do [un]monitor */
-		if (!reg)
+		if (!monitor_fn)
 			continue;
 
+		log_verbose("%sonitoring %s/%s", monitor ? "M" : "Not m", lv->vg->name, lv->name);
+
 		/* FIXME specify events */
-		if (!reg(cmd, seg, 0)) {
-			stack;
-			return -1;
+		if (!monitor_fn(cmd, seg, 0)) {
+			log_error("%s/%s: %s segment monitoring function failed.",
+				  lv->vg->name, lv->name, seg->segtype->name);
+			return 0;
 		}
 
 		/* Check [un]monitor results */
 		/* Try a couple times if pending, but not forever... */
 		for (i = 0; i < 10; i++) {
 			pending = 0;
-			registered = seg->segtype->ops->target_registered(seg, &pending);
+			monitored = seg->segtype->ops->target_monitored(seg, &pending);
 			if (pending ||
-			    (!registered && do_reg) ||
-			    (registered && !do_reg))
-				log_very_verbose("%s/%s %smonitoring still pending.",
-						 lv->vg->name, lv->name, do_reg ? "" : "un");
+			    (!monitored && monitor) ||
+			    (monitored && !monitor))
+				log_very_verbose("%s/%s %smonitoring still pending: waiting...",
+						 lv->vg->name, lv->name, monitor ? "" : "un");
 			else
 				break;
 			sleep(1);
 		}
 
-		r = (registered && do_reg) || (!registered && !do_reg);
+		r = (monitored && monitor) || (!monitored && !monitor);
 	}
 
 	return r;
@@ -764,7 +763,7 @@
 		}
 	}
 
-	if (register_dev_for_events(cmd, lv, 0) < 0)
+	if (!monitor_dev_for_events(cmd, lv, 0))
 		/* FIXME Consider aborting here */
 		stack;
 
@@ -822,7 +821,7 @@
 	memlock_dec();
 	fs_unlock();
 
-	if (register_dev_for_events(cmd, lv, 1) < 0)
+	if (!monitor_dev_for_events(cmd, lv, 1))
 		stack;
 
 	return 1;
@@ -868,7 +867,7 @@
 		return 0;
 	}
 
-	if (register_dev_for_events(cmd, lv, 0) < 0)
+	if (!monitor_dev_for_events(cmd, lv, 0))
 		stack;
 
 	memlock_inc();
@@ -941,7 +940,7 @@
 	memlock_dec();
 	fs_unlock();
 
-	if (!register_dev_for_events(cmd, lv, 1) < 0)
+	if (!monitor_dev_for_events(cmd, lv, 1))
 		stack;
 
 	return r;
--- LVM2/lib/activate/activate.h	2006/10/03 17:55:19	1.52
+++ LVM2/lib/activate/activate.h	2007/01/19 22:21:45	1.53
@@ -86,7 +86,7 @@
 int lvs_in_vg_opened(struct volume_group *vg);
 
 
-int register_dev_for_events(struct cmd_context *cmd,
+int monitor_dev_for_events(struct cmd_context *cmd,
 			    struct logical_volume *lv, int do_reg);
 
 /*
--- LVM2/lib/locking/cluster_locking.c	2006/12/01 23:10:26	1.16
+++ LVM2/lib/locking/cluster_locking.c	2007/01/19 22:21:45	1.17
@@ -321,8 +321,8 @@
 	if (mirror_in_sync())
 		args[1] |= LCK_MIRROR_NOSYNC_MODE;
 
-	if (dmeventd_register_mode())
-		args[1] |= LCK_DMEVENTD_REGISTER_MODE;
+	if (dmeventd_monitor_mode())
+		args[1] |= LCK_DMEVENTD_MONITOR_MODE;
 
 	/*
 	 * VG locks are just that: locks, and have no side effects
--- LVM2/lib/locking/locking.h	2006/12/11 14:00:26	1.29
+++ LVM2/lib/locking/locking.h	2007/01/19 22:21:45	1.30
@@ -75,7 +75,7 @@
  */
 #define LCK_PARTIAL_MODE	0x00000001	/* Running in partial mode */
 #define LCK_MIRROR_NOSYNC_MODE	0x00000002	/* Mirrors don't require sync */
-#define LCK_DMEVENTD_REGISTER_MODE	0x00000004	/* Register with dmeventd */
+#define LCK_DMEVENTD_MONITOR_MODE	0x00000004	/* Register with dmeventd */
 
 
 /*
--- LVM2/lib/log/log.c	2006/08/21 12:54:53	1.35
+++ LVM2/lib/log/log.c	2007/01/19 22:21:45	1.36
@@ -48,7 +48,7 @@
 static char _msg_prefix[30] = "  ";
 static int _already_logging = 0;
 static int _mirror_in_sync = 0;
-static int _dmeventd_register = DEFAULT_DMEVENTD_MONITOR;
+static int _dmeventd_monitor = DEFAULT_DMEVENTD_MONITOR;
 
 static lvm2_log_fn_t _lvm2_log_fn = NULL;
 
@@ -189,9 +189,9 @@
 	_mirror_in_sync = in_sync;
 }
 
-void init_dmeventd_register(int reg)
+void init_dmeventd_monitor(int reg)
 {
-	_dmeventd_register = reg;
+	_dmeventd_monitor = reg;
 }
 
 void init_cmd_name(int status)
@@ -268,9 +268,9 @@
 	return _mirror_in_sync;
 }
 
-int dmeventd_register_mode(void)
+int dmeventd_monitor_mode(void)
 {
-	return _dmeventd_register;
+	return _dmeventd_monitor;
 }
 
 void init_debug(int level)
--- LVM2/lib/log/log.h	2006/08/01 14:56:33	1.32
+++ LVM2/lib/log/log.h	2007/01/19 22:21:45	1.33
@@ -75,7 +75,7 @@
 void init_lockingfailed(int level);
 void init_security_level(int level);
 void init_mirror_in_sync(int in_sync);
-void init_dmeventd_register(int reg);
+void init_dmeventd_monitor(int reg);
 
 void set_cmd_name(const char *cmd_name);
 
@@ -90,7 +90,7 @@
 int lockingfailed(void);
 int security_level(void);
 int mirror_in_sync(void);
-int dmeventd_register_mode(void);
+int dmeventd_monitor_mode(void);
 
 /* Suppress messages to stdout/stderr (1) or everywhere (2) */
 /* Returns previous setting */
--- LVM2/lib/metadata/segtype.h	2007/01/12 20:38:29	1.15
+++ LVM2/lib/metadata/segtype.h	2007/01/19 22:21:45	1.16
@@ -83,10 +83,10 @@
 			       const struct lv_segment *seg,
 			       struct list *modules);
 	void (*destroy) (const struct segment_type * segtype);
-	int (*target_registered) (struct lv_segment *seg, int *pending);
-	int (*target_register_events) (struct cmd_context *cmd,
+	int (*target_monitored) (struct lv_segment *seg, int *pending);
+	int (*target_monitor_events) (struct cmd_context *cmd,
 				       struct lv_segment *seg, int events);
-	int (*target_unregister_events) (struct cmd_context *cmd,
+	int (*target_unmonitor_events) (struct cmd_context *cmd,
 					 struct lv_segment *seg, int events);
 };
 
--- LVM2/lib/mirror/mirrored.c	2007/01/17 15:00:57	1.43
+++ LVM2/lib/mirror/mirrored.c	2007/01/19 22:21:45	1.44
@@ -411,7 +411,7 @@
 	return NULL;
 }
 
-static int _target_registered(struct lv_segment *seg, int *pending)
+static int _target_monitored(struct lv_segment *seg, int *pending)
 {
 	char *dso, *name;
 	struct logical_volume *lv;
@@ -476,19 +476,19 @@
 	if (!r)
 		return_0;
 
-	log_info("%s %s for events", set ? "Registered" : "Unregistered", name);
+	log_info("%s %s for events", set ? "Monitored" : "Unmonitored", name);
 
 	return 1;
 }
 
-static int _target_register_events(struct cmd_context *cmd,
+static int _target_monitor_events(struct cmd_context *cmd,
 				     struct lv_segment *seg,
 				     int events)
 {
 	return _target_set_events(cmd, seg, events, 1);
 }
 
-static int _target_unregister_events(struct cmd_context *cmd,
+static int _target_unmonitor_events(struct cmd_context *cmd,
 				     struct lv_segment *seg,
 				     int events)
 {
@@ -536,9 +536,9 @@
 	.target_percent = _mirrored_target_percent,
 	.target_present = _mirrored_target_present,
 #ifdef DMEVENTD
-	.target_registered = _target_registered,
-	.target_register_events = _target_register_events,
-	.target_unregister_events = _target_unregister_events,
+	.target_monitored = _target_monitored,
+	.target_monitor_events = _target_monitor_events,
+	.target_unmonitor_events = _target_unmonitor_events,
 #endif
 #endif
 	.modules_needed = _mirrored_modules_needed,
--- LVM2/tools/lvchange.c	2007/01/12 20:38:30	1.76
+++ LVM2/tools/lvchange.c	2007/01/19 22:21:45	1.77
@@ -80,10 +80,9 @@
 	return 1;
 }
 
-static int lvchange_registration(struct cmd_context *cmd,
-				 struct logical_volume *lv)
+static int lvchange_monitoring(struct cmd_context *cmd,
+			       struct logical_volume *lv)
 {
-	int r;
 	struct lvinfo info;
 
 	if (!lv_info(cmd, lv, &info, 0) || !info.exists) {
@@ -91,27 +90,14 @@
 		return 0;
 	}
 
-	/* do not register pvmove lv's */
+	/* do not monitor pvmove lv's */
 	if (lv->status & PVMOVE)
 		return 1;
 
-	log_verbose("%smonitoring logical volume \"%s\"",
-		    (dmeventd_register_mode()) ? "" : "Not ", lv->name);
-	r = register_dev_for_events(cmd, lv, dmeventd_register_mode());
-
-	if (r < 0) {
-		log_error("Unable to %smonitor logical volume, %s",
-			  (dmeventd_register_mode()) ? "" : "un", lv->name);
-		r = 0;
-	} else if (!r) {
-		log_verbose("Logical volume %s needs no %smonitoring, or is already %smonitored",
-			    (dmeventd_register_mode()) ? "" : "un",
-			    lv->name,
-			    (dmeventd_register_mode()) ? "" : "un");
-		r = 1;
-	}
+	if (!monitor_dev_for_events(cmd, lv, dmeventd_monitor_mode()))
+		stack;
 
-	return r;
+	return 1;
 }
 
 static int lvchange_availability(struct cmd_context *cmd,
@@ -605,7 +591,7 @@
 		return ECMD_FAILED;
 	}
 
-	init_dmeventd_register(arg_int_value(cmd, monitor_ARG, DEFAULT_DMEVENTD_MONITOR));
+	init_dmeventd_monitor(arg_int_value(cmd, monitor_ARG, DEFAULT_DMEVENTD_MONITOR));
 
 	/* access permission change */
 	if (arg_count(cmd, permission_ARG)) {
@@ -675,7 +661,7 @@
 	if (!arg_count(cmd, available_ARG) &&
 	    !arg_count(cmd, refresh_ARG) &&
 	    arg_count(cmd, monitor_ARG)) {
-		if (!lvchange_registration(cmd, lv))
+		if (!lvchange_monitoring(cmd, lv))
 			return ECMD_FAILED;
 	}
 
--- LVM2/tools/vgchange.c	2007/01/12 20:38:30	1.55
+++ LVM2/tools/vgchange.c	2007/01/19 22:21:45	1.56
@@ -15,7 +15,7 @@
 
 #include "tools.h"
 
-static int _register_lvs_in_vg(struct cmd_context *cmd,
+static int _monitor_lvs_in_vg(struct cmd_context *cmd,
 			       struct volume_group *vg, int reg)
 {
 	struct lv_list *lvl;
@@ -23,7 +23,6 @@
 	struct lvinfo info;
 	int lv_active;
 	int count = 0;
-	int r;
 
 	list_iterate_items(lvl, &vg->lvs) {
 		lv = lvl->lv;
@@ -39,16 +38,9 @@
 		if ((lv->status & PVMOVE) || !lv_active)
 			continue;
 
-		r = register_dev_for_events(cmd, lv, reg);
-
-		if (r < 0) {
-			log_error("Failed to %s logical volume, %s",
-				  (reg) ? "register" : "unregister",
-				  lv->name);
+		if (!monitor_dev_for_events(cmd, lv, reg)) {
 			continue;
-		}
-
-		if (r)
+		} else
 			count++;
 	}
 
@@ -114,10 +106,10 @@
 	int active, monitored;
 
 	if ((active = lvs_in_vg_activated(vg))) {
-		monitored = _register_lvs_in_vg(cmd, vg, dmeventd_register_mode());
+		monitored = _monitor_lvs_in_vg(cmd, vg, dmeventd_monitor_mode());
 		log_print("%d logical volume(s) in volume group "
 			    "\"%s\" %smonitored",
-			    monitored, vg->name, (dmeventd_register_mode()) ? "" : "un");
+			    monitored, vg->name, (dmeventd_monitor_mode()) ? "" : "un");
 	}
 
 	return ECMD_PROCESSED;
@@ -154,11 +146,11 @@
 	if (activate && (active = lvs_in_vg_activated(vg))) {
 		log_verbose("%d logical volume(s) in volume group \"%s\" "
 			    "already active", active, vg->name);
-		monitored = _register_lvs_in_vg(cmd, vg, dmeventd_register_mode());
+		monitored = _monitor_lvs_in_vg(cmd, vg, dmeventd_monitor_mode());
 		log_verbose("%d existing logical volume(s) in volume "
 			    "group \"%s\" %smonitored",
 			    monitored, vg->name,
-			    dmeventd_register_mode() ? "" : "un");
+			    dmeventd_monitor_mode() ? "" : "un");
 	}
 
 	if (activate && _activate_lvs_in_vg(cmd, vg, available))
@@ -540,7 +532,7 @@
 		return ECMD_FAILED;
 	}
 
-	init_dmeventd_register(arg_int_value(cmd, monitor_ARG, DEFAULT_DMEVENTD_MONITOR));
+	init_dmeventd_monitor(arg_int_value(cmd, monitor_ARG, DEFAULT_DMEVENTD_MONITOR));
 
 	if (arg_count(cmd, available_ARG))
 		r = _vgchange_available(cmd, vg);




More information about the lvm-devel mailing list