[lvm-devel] [PATCH] poll_daemon: cleanly exit if LV is no longer active
Jonathan Brassow
jbrassow at redhat.com
Fri Jun 6 04:52:14 UTC 2014
This patch is in response to bug 692186, where the most relevant comment
is:
https://bugzilla.redhat.com/show_bug.cgi?id=692186#c6
brassow
poll_daemon: Quietly exit polling if the LV is no longer active
If the we are polling an LV due to some sort of conversion and it
becomes inactive, a rather worrisome message is produced, e.g.:
" ABORTING: Mirror percentage check failed."
We can quietly exit if we do a simple check to see if the LV is
active before performing the check. This eliminates the scary
message.
Index: lvm2/tools/polldaemon.c
===================================================================
--- lvm2.orig/tools/polldaemon.c
+++ lvm2/tools/polldaemon.c
@@ -24,6 +24,12 @@ progress_t poll_mirror_progress(struct c
percent_t segment_percent = PERCENT_0, overall_percent = PERCENT_0;
uint32_t event_nr = 0;
+ if (!lv_is_active(lv)) {
+ log_print_unless_silent("%s: Interrupted: No longer active.",
+ name);
+ return PROGRESS_INTERRUPTED;
+ }
+
if (!lv_is_mirrored(lv) ||
!lv_mirror_percent(cmd, lv, !parms->interval, &segment_percent,
&event_nr) ||
@@ -77,6 +83,9 @@ static int _check_lv_status(struct cmd_c
if (progress == PROGRESS_CHECK_FAILED)
return_0;
+ if (progress == PROGRESS_INTERRUPTED)
+ return 1;
+
if (progress == PROGRESS_UNFINISHED) {
/* The only case the caller *should* try again later */
*finished = 0;
Index: lvm2/tools/polldaemon.h
===================================================================
--- lvm2.orig/tools/polldaemon.h
+++ lvm2/tools/polldaemon.h
@@ -22,7 +22,8 @@ typedef enum {
PROGRESS_CHECK_FAILED = 0,
PROGRESS_UNFINISHED = 1,
PROGRESS_FINISHED_SEGMENT = 2,
- PROGRESS_FINISHED_ALL = 3
+ PROGRESS_FINISHED_ALL = 3,
+ PROGRESS_INTERRUPTED = 4
} progress_t;
struct daemon_parms;
More information about the lvm-devel
mailing list