diff options
author | David Teigland <teigland@redhat.com> | 2015-06-01 13:51:08 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2015-06-02 11:39:34 -0500 |
commit | add22d1ba6dc18ed9d12a91ffdac111186342437 (patch) | |
tree | d16ca7b3ce8bbd64e04f98f8f633d5c7c538df51 | |
parent | b2338733acaf11b7c7295734ce30914e7cc79505 (diff) | |
download | lvm2-add22d1ba6dc18ed9d12a91ffdac111186342437.tar.gz |
vgcreate/vgchange: wait for lock start by default
By default, vgcreate and vgchange --lock-start will
wait for the lockspace to start. Adding --lock-opt nowait
will cause them not to wait. The waiting can always
be canceled by Ctrl-C without any harm.
-rw-r--r-- | tools/vgchange.c | 10 | ||||
-rw-r--r-- | tools/vgcreate.c | 9 |
2 files changed, 16 insertions, 3 deletions
diff --git a/tools/vgchange.c b/tools/vgchange.c index 7912cfcc8..b2c6218b2 100644 --- a/tools/vgchange.c +++ b/tools/vgchange.c @@ -1186,10 +1186,16 @@ int vgchange(struct cmd_context *cmd, int argc, char **argv) /* Wait for lock-start ops that were initiated in vgchange_lockstart. */ - if (arg_is_set(cmd, lockstart_ARG) && arg_is_set(cmd, lockopt_ARG)) { + if (arg_is_set(cmd, lockstart_ARG)) { const char *start_opt = arg_str_value(cmd, lockopt_ARG, NULL); - if (!strcmp(start_opt, "wait") || !strcmp(start_opt, "autowait")) + + if (!start_opt || !strcmp(start_opt, "wait") || !strcmp(start_opt, "autowait")) { + log_print_unless_silent("Starting locking. Waiting until locks are ready..."); lockd_start_wait(cmd); + + } else if (!strcmp(start_opt, "nowait")) { + log_print_unless_silent("Starting locking. VG is read-only until locks are ready."); + } } return ret; diff --git a/tools/vgcreate.c b/tools/vgcreate.c index 1f5eb38ec..615f83eb5 100644 --- a/tools/vgcreate.c +++ b/tools/vgcreate.c @@ -158,8 +158,15 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv) goto out; } - if (start_opt && !strcmp(start_opt, "wait")) + if (!start_opt || !strcmp(start_opt, "wait")) { + /* It is OK if the user does Ctrl-C to cancel the wait. */ + log_print_unless_silent("Starting locking. Waiting until locks are ready..."); lockd_start_wait(cmd); + + } else if (!strcmp(start_opt, "nowait")) { + log_print_unless_silent("Starting locking. VG is read-only until locks are ready."); + } + } out: release_vg(vg); |