[lvm-devel] master - vgcreate: allow both --shared and --lock-type options

David Teigland teigland at fedoraproject.org
Thu Oct 8 15:17:57 UTC 2015


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=09981afc1c03e1d79109c483b3d19ae1c207e158
Commit:        09981afc1c03e1d79109c483b3d19ae1c207e158
Parent:        3d03e504cda6307f692c5879f6850b2e27af7d71
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Thu Oct 8 10:14:33 2015 -0500
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Thu Oct 8 10:14:33 2015 -0500

vgcreate: allow both --shared and --lock-type options

Using --lock-type sanlock|dlm implies --shared.

Using --shared selects lock type sanlock|dlm
(by choosing the one that's running.)

Using both --shared and --lock-type sanlock|dlm should
also be allowed (--shared is just redundant information.)
---
 tools/toollib.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/tools/toollib.c b/tools/toollib.c
index 01146a4..cf5e236 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -898,12 +898,18 @@ int vgcreate_params_set_from_args(struct cmd_context *cmd,
 	use_clvmd = (locking_type == 3);
 
 	if (arg_is_set(cmd, locktype_ARG)) {
-		if (arg_is_set(cmd, clustered_ARG) || arg_is_set(cmd, shared_ARG)) {
-			log_error("A lock type cannot be specified with --shared or --clustered.");
+		if (arg_is_set(cmd, clustered_ARG)) {
+			log_error("A lock type cannot be specified with --clustered.");
 			return 0;
 		}
+
 		lock_type = arg_str_value(cmd, locktype_ARG, "");
 
+		if (arg_is_set(cmd, shared_ARG) && !is_lockd_type(lock_type)) {
+			log_error("The --shared option requires lock type sanlock or dlm.");
+			return 0;
+		}
+
 	} else if (arg_is_set(cmd, clustered_ARG)) {
 		const char *arg_str = arg_str_value(cmd, clustered_ARG, "");
 		int clustery = strcmp(arg_str, "y") ? 0 : 1;




More information about the lvm-devel mailing list