[lvm-devel] master - vgchange: start polling with activation
Zdenek Kabelac
zkabelac at sourceware.org
Thu Jun 14 20:03:16 UTC 2018
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a35098b1102eb7f387e90bd16da4cf3ed833ca57
Commit: a35098b1102eb7f387e90bd16da4cf3ed833ca57
Parent: 218c57410c32bfa7bf7044cc6d94fd9253d6b547
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu Jun 14 21:05:41 2018 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Thu Jun 14 22:02:01 2018 +0200
vgchange: start polling with activation
Shuffle code for better readability as set of conditions was
hard to follow.
Make it obvious the refresh & activate path is handling
monitoring and polling on its own.
So the only --monitor and --poll option needs explicit care.
Option --monitor without option --poll will now as a result
of this patch NOT start polling.
So command: vgchange --monitor n is no longer a polling starter.
---
tools/vgchange.c | 23 +++++++++--------------
1 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/tools/vgchange.c b/tools/vgchange.c
index c513470..c444c30 100644
--- a/tools/vgchange.c
+++ b/tools/vgchange.c
@@ -662,26 +662,21 @@ static int _vgchange_single(struct cmd_context *cmd, const char *vg_name,
activate = (activation_change_t) arg_uint_value(cmd, activate_ARG, 0);
if (!vgchange_activate(cmd, vg, activate))
return_ECMD_FAILED;
- }
-
- if (arg_is_set(cmd, refresh_ARG)) {
+ } else if (arg_is_set(cmd, refresh_ARG)) {
/* refreshes the visible LVs (which starts polling) */
if (!_vgchange_refresh(cmd, vg))
return_ECMD_FAILED;
- }
-
- if (!arg_is_set(cmd, activate_ARG) &&
- !arg_is_set(cmd, refresh_ARG) &&
- arg_is_set(cmd, monitor_ARG)) {
+ } else {
/* -ay* will have already done monitoring changes */
- if (!_vgchange_monitoring(cmd, vg))
+ if (arg_is_set(cmd, monitor_ARG) &&
+ !_vgchange_monitoring(cmd, vg))
return_ECMD_FAILED;
- }
- if (!arg_is_set(cmd, refresh_ARG) &&
- arg_is_set(cmd, poll_ARG) &&
- !vgchange_background_polling(cmd, vg))
- return_ECMD_FAILED;
+ /* When explicitelly specified --poll */
+ if (arg_is_set(cmd, poll_ARG) &&
+ !vgchange_background_polling(cmd, vg))
+ return_ECMD_FAILED;
+ }
return ret;
}
More information about the lvm-devel
mailing list