Peter Rajnoha a98925
 WHATS_NEW      |  1 +
Peter Rajnoha a98925
 tools/pvscan.c | 15 +++++++++++++++
Peter Rajnoha a98925
 2 files changed, 16 insertions(+)
Peter Rajnoha a98925
Peter Rajnoha a98925
diff --git a/WHATS_NEW b/WHATS_NEW
Peter Rajnoha a98925
index 12307ed..e247391 100644
Peter Rajnoha a98925
--- a/WHATS_NEW
Peter Rajnoha a98925
+++ b/WHATS_NEW
Peter Rajnoha a98925
@@ -1,5 +1,6 @@
Peter Rajnoha a98925
 Version 2.02.99 - 
Peter Rajnoha a98925
 ===================================
Peter Rajnoha a98925
+  Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
Peter Rajnoha a98925
   Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue.
Peter Rajnoha a98925
   Remove dependency on fedora-storage-init.service in lvm2 systemd units.
Peter Rajnoha a98925
   Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit.
Peter Rajnoha a98925
diff --git a/tools/pvscan.c b/tools/pvscan.c
Peter Rajnoha a98925
index 3d5ddef..34ab792 100644
Peter Rajnoha a98925
--- a/tools/pvscan.c
Peter Rajnoha a98925
+++ b/tools/pvscan.c
Peter Rajnoha a98925
@@ -119,6 +119,21 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
Peter Rajnoha a98925
 	char *buf;
Peter Rajnoha a98925
 	activation_handler handler = NULL;
Peter Rajnoha a98925
 
Peter Rajnoha a98925
+	/*
Peter Rajnoha a98925
+	 * Return here immediately if lvmetad is not used.
Peter Rajnoha a98925
+	 * Also return if locking_type=3 (clustered) as we
Peter Rajnoha a98925
+	 * dont't support cluster + lvmetad yet.
Peter Rajnoha a98925
+	 *
Peter Rajnoha a98925
+	 * This is to avoid taking the global lock uselessly
Peter Rajnoha a98925
+	 * and to prevent hangs in clustered environment.
Peter Rajnoha a98925
+	 */
Peter Rajnoha a98925
+	/* TODO: Remove this once lvmetad + cluster supported! */
Peter Rajnoha a98925
+	if (find_config_tree_int(cmd, "global/locking_type", 1) == 3 ||
Peter Rajnoha a98925
+	    !find_config_tree_int(cmd, "global/use_lvmetad", 0)) {
Peter Rajnoha a98925
+		log_debug("_pvscan_lvmetad: immediate return");
Peter Rajnoha a98925
+		return ret;
Peter Rajnoha a98925
+	}
Peter Rajnoha a98925
+
Peter Rajnoha a98925
 	if (arg_count(cmd, activate_ARG)) {
Peter Rajnoha a98925
 		if (arg_uint_value(cmd, activate_ARG, CHANGE_AAY) != CHANGE_AAY) {
Peter Rajnoha a98925
 			log_error("Only --activate ay allowed with pvscan.");