[lvm2] Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
Peter Rajnoha
prajnoha at fedoraproject.org
Sat Nov 17 10:17:09 UTC 2012
commit a98925230bf94514995720d8811c6293382feb3f
Author: Peter Rajnoha <prajnoha at redhat.com>
Date: Sat Nov 17 11:16:40 2012 +0100
Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
...-cluster-locking-used-or-lvmetad-not-used.patch | 41 ++++++++++++++++++++
lvm2.spec | 5 ++-
2 files changed, 45 insertions(+), 1 deletions(-)
---
diff --git a/lvm2-2_02_99-exit-pvscan-cache-immediately-if-cluster-locking-used-or-lvmetad-not-used.patch b/lvm2-2_02_99-exit-pvscan-cache-immediately-if-cluster-locking-used-or-lvmetad-not-used.patch
new file mode 100644
index 0000000..8883b37
--- /dev/null
+++ b/lvm2-2_02_99-exit-pvscan-cache-immediately-if-cluster-locking-used-or-lvmetad-not-used.patch
@@ -0,0 +1,41 @@
+ WHATS_NEW | 1 +
+ tools/pvscan.c | 15 +++++++++++++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/WHATS_NEW b/WHATS_NEW
+index 12307ed..e247391 100644
+--- a/WHATS_NEW
++++ b/WHATS_NEW
+@@ -1,5 +1,6 @@
+ Version 2.02.99 -
+ ===================================
++ Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
+ Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue.
+ Remove dependency on fedora-storage-init.service in lvm2 systemd units.
+ Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit.
+diff --git a/tools/pvscan.c b/tools/pvscan.c
+index 3d5ddef..34ab792 100644
+--- a/tools/pvscan.c
++++ b/tools/pvscan.c
+@@ -119,6 +119,21 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
+ char *buf;
+ activation_handler handler = NULL;
+
++ /*
++ * Return here immediately if lvmetad is not used.
++ * Also return if locking_type=3 (clustered) as we
++ * dont't support cluster + lvmetad yet.
++ *
++ * This is to avoid taking the global lock uselessly
++ * and to prevent hangs in clustered environment.
++ */
++ /* TODO: Remove this once lvmetad + cluster supported! */
++ if (find_config_tree_int(cmd, "global/locking_type", 1) == 3 ||
++ !find_config_tree_int(cmd, "global/use_lvmetad", 0)) {
++ log_debug("_pvscan_lvmetad: immediate return");
++ return ret;
++ }
++
+ if (arg_count(cmd, activate_ARG)) {
+ if (arg_uint_value(cmd, activate_ARG, CHANGE_AAY) != CHANGE_AAY) {
+ log_error("Only --activate ay allowed with pvscan.");
diff --git a/lvm2.spec b/lvm2.spec
index ee149ce..3af0b1f 100644
--- a/lvm2.spec
+++ b/lvm2.spec
@@ -52,6 +52,7 @@ Patch6: lvm2-2_02_99-properly-set-cookie_set-var-on-dm_task_set_cookie-call.patc
Patch7: lvm2-2_02_99-hardcode-use_lvmetad0-if-cluster-locking-used-and-issue-warning-msg.patch
Patch8: lvm2-2_02_99-init-lvmetad-lazily-to-avoid-early-socket-access-on-config-overrides.patch
Patch9: lvm2-2_02_99-various-updates-and-fixes-for-systemd-units.patch
+Patch10: lvm2-2_02_99-exit-pvscan-cache-immediately-if-cluster-locking-used-or-lvmetad-not-used.patch
BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
BuildRequires: ncurses-devel
@@ -96,6 +97,7 @@ or more physical volumes and creating one or more logical volumes
%patch7 -p1 -b .cluster_lvmetad
%patch8 -p1 -b .lvmetad_lazy_init
%patch9 -p1 -b .systemd_fixes
+%patch10 -p1 -b .pvscan_immediate
%build
%define _default_pid_dir /run
@@ -592,12 +594,13 @@ the device-mapper event library.
%{_libdir}/pkgconfig/devmapper-event.pc
%changelog
-* Thu Nov 01 2012 Peter Rajnoha <prajnoha at redhat.com> - 2.02.98-3
+* Sat Nov 17 2012 Peter Rajnoha <prajnoha at redhat.com> - 2.02.98-3
- Add lvm2-activation-generator systemd generator to automatically generate
systemd units to activate LVM2 volumes even if lvmetad is not used.
This replaces lvm activation part of the former fedora-storage-init
script that was included in the initscripts package before.
- Enable lvmetad - the LVM metadata daemon by default.
+- Exit pvscan --cache immediately if cluster locking used or lvmetad not used.
- Don't use lvmetad in lvm2-monitor.service ExecStop to avoid a systemd issue.
- Remove dependency on fedora-storage-init.service in lvm2 systemd units.
- Depend on lvm2-lvmetad.socket in lvm2-monitor.service systemd unit.
More information about the scm-commits
mailing list