master - lvmetad: Fix pvmeta_old_{pvid, dev} logic when they are the same.
by Petr Rockai
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=551b6b79986786...
Commit: 551b6b799867860fc6a437be5298bc74b814ab19
Parent: 67c539f346a8259a4100ab10196486f8793fecce
Author: Petr Rockai <me(a)mornfall.net>
AuthorDate: Fri Mar 14 10:06:27 2014 +0100
Committer: Petr Rockai <me(a)mornfall.net>
CommitterDate: Fri Mar 14 10:09:16 2014 +0100
lvmetad: Fix pvmeta_old_{pvid,dev} logic when they are the same.
---
daemons/lvmetad/lvmetad-core.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 1b093cc..1858ee2 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -883,22 +883,22 @@ static response pv_found(lvmetad_state *s, request r)
lock_pvid_to_pvmeta(s);
+ if ((pvmeta_old_pvid = dm_hash_lookup(s->pvid_to_pvmeta, pvid)))
+ dm_config_get_uint64(pvmeta_old_pvid->root, "pvmeta/device", &device_old_pvid);
+
if ((old = dm_hash_lookup_binary(s->device_to_pvid, &device, sizeof(device)))) {
pvmeta_old_dev = dm_hash_lookup(s->pvid_to_pvmeta, old);
dm_hash_remove(s->pvid_to_pvmeta, old);
vgid_old = dm_hash_lookup(s->pvid_to_vgid, old);
}
- if ((pvmeta_old_pvid = dm_hash_lookup(s->pvid_to_pvmeta, pvid)))
- dm_config_get_uint64(pvmeta_old_pvid->root, "pvmeta/device", &device_old_pvid);
-
DEBUGLOG(s, "pv_found %s, vgid = %s, device = %" PRIu64 " (previously %" PRIu64 "), old = %s",
pvid, vgid, device, device_old_pvid, old);
if (!(cft->root = dm_config_clone_node(cft, pvmeta, 0)))
goto out_of_mem;
- if (pvmeta_old_pvid && compare_config(pvmeta_old_pvid->root, cft->root))
+ if (!pvmeta_old_pvid || compare_config(pvmeta_old_pvid->root, cft->root))
changed |= 1;
if (pvmeta_old_pvid && device != device_old_pvid) {
10 years, 2 months
master - lvmetad: Fix previous commit
by Marian Csontos
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=67c539f346a825...
Commit: 67c539f346a8259a4100ab10196486f8793fecce
Parent: 816197aaabbd41dd85d7728a6fd2992c148e124f
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Fri Mar 14 08:09:37 2014 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Fri Mar 14 08:09:37 2014 +0100
lvmetad: Fix previous commit
"%d" in buffer_append_vf is 64 bit wide. Using just `int` for the
variable will fetch more from va_list than intended and shifting
remaining arguments resulting in errors like:
Internal error: Bad format string at '#orphan'
---
daemons/lvmetad/lvmetad-core.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 93a56c6..1b093cc 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -863,8 +863,8 @@ static response pv_found(lvmetad_state *s, request r)
struct dm_config_tree *cft, *pvmeta_old_dev = NULL, *pvmeta_old_pvid = NULL;
char *old;
char *pvid_dup;
- int complete = 0, orphan = 0, changed = 0;
- int64_t seqno = -1, seqno_old = -1;
+ int complete = 0, orphan = 0;
+ int64_t seqno = -1, seqno_old = -1, changed = 0;
if (!pvid)
return reply_fail("need PV UUID");
10 years, 2 months
master - lvmetad: Indicate whether pv_found caused the VG to change.
by Petr Rockai
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=816197aaabbd41...
Commit: 816197aaabbd41dd85d7728a6fd2992c148e124f
Parent: 5eef269f7719089db2474b3f732f3630467d1bbc
Author: Petr Rockai <me(a)mornfall.net>
AuthorDate: Fri Mar 14 03:04:09 2014 +0100
Committer: Petr Rockai <me(a)mornfall.net>
CommitterDate: Fri Mar 14 03:08:19 2014 +0100
lvmetad: Indicate whether pv_found caused the VG to change.
---
daemons/lvmetad/lvmetad-core.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 8522c11..93a56c6 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -863,7 +863,7 @@ static response pv_found(lvmetad_state *s, request r)
struct dm_config_tree *cft, *pvmeta_old_dev = NULL, *pvmeta_old_pvid = NULL;
char *old;
char *pvid_dup;
- int complete = 0, orphan = 0;
+ int complete = 0, orphan = 0, changed = 0;
int64_t seqno = -1, seqno_old = -1;
if (!pvid)
@@ -898,10 +898,14 @@ static response pv_found(lvmetad_state *s, request r)
if (!(cft->root = dm_config_clone_node(cft, pvmeta, 0)))
goto out_of_mem;
+ if (pvmeta_old_pvid && compare_config(pvmeta_old_pvid->root, cft->root))
+ changed |= 1;
+
if (pvmeta_old_pvid && device != device_old_pvid) {
DEBUGLOG(s, "pv %s no longer on device %" PRIu64, pvid, device_old_pvid);
dm_free(dm_hash_lookup_binary(s->device_to_pvid, &device_old_pvid, sizeof(device_old_pvid)));
dm_hash_remove_binary(s->device_to_pvid, &device_old_pvid, sizeof(device_old_pvid));
+ changed |= 1;
}
if (!dm_hash_insert(s->pvid_to_pvmeta, pvid, cft) ||
@@ -935,6 +939,7 @@ out_of_mem:
if (!update_metadata(s, vgname, vgid, metadata, &seqno_old))
return reply_fail("metadata update failed");
+ changed |= (seqno_old != dm_config_find_int(metadata, "metadata/seqno", -1));
} else {
lock_pvid_to_vgid(s);
vgid = dm_hash_lookup(s->pvid_to_vgid, pvid);
@@ -972,6 +977,7 @@ out_of_mem:
return daemon_reply_simple("OK",
"status = %s", orphan ? "orphan" :
(complete ? "complete" : "partial"),
+ "changed = %d", changed,
"vgid = %s", vgid ? vgid : "#orphan",
"vgname = %s", vgname ? vgname : "#orphan",
"seqno_before = %"PRId64, seqno_old,
10 years, 2 months
master - lvmetad: Also return vgname in reply to pv_found requests.
by Petr Rockai
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=5eef269f771908...
Commit: 5eef269f7719089db2474b3f732f3630467d1bbc
Parent: a31ab7c1716b60d80cbc1b58fa08b7ef9f1b8183
Author: Petr Rockai <me(a)mornfall.net>
AuthorDate: Fri Mar 14 02:40:20 2014 +0100
Committer: Petr Rockai <me(a)mornfall.net>
CommitterDate: Fri Mar 14 03:08:19 2014 +0100
lvmetad: Also return vgname in reply to pv_found requests.
---
daemons/lvmetad/lvmetad-core.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 2bbf9e4..8522c11 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -952,6 +952,11 @@ out_of_mem:
return reply_fail("non-orphan VG without metadata encountered");
}
unlock_vg(s, vgid);
+
+ // TODO: separate vgid->vgname lock
+ lock_vgid_to_metadata(s);
+ vgname = dm_hash_lookup(s->vgid_to_vgname, vgid);
+ unlock_vgid_to_metadata(s);
}
if (vgid_old && (!vgid || strcmp(vgid, vgid_old))) {
@@ -968,6 +973,7 @@ out_of_mem:
"status = %s", orphan ? "orphan" :
(complete ? "complete" : "partial"),
"vgid = %s", vgid ? vgid : "#orphan",
+ "vgname = %s", vgname ? vgname : "#orphan",
"seqno_before = %"PRId64, seqno_old,
"seqno_after = %"PRId64, seqno,
NULL);
10 years, 2 months
master - man: Fix man page containing BUILDROOT
by Marian Csontos
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=a31ab7c1716b60...
Commit: a31ab7c1716b60d80cbc1b58fa08b7ef9f1b8183
Parent: 2189d66a2758e4be67a32a7d9d24a9df55c31c4c
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Fri Mar 14 00:36:19 2014 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Fri Mar 14 00:36:19 2014 +0100
man: Fix man page containing BUILDROOT
This breaks brew/koji as DESTDIR should not be contained in any file and
results in message like:
+ /usr/lib/rpm/check-buildroot
/builddir/build/BUILDROOT/lvm2-2.02.106-0.311.el7.x86_64/usr/share/man/man8/lvm2-activation-generator.8:.B /builddir/build/BUILDROOT/lvm2-2.02.106-0.311.el7.x86_64/usr/lib/systemd/system-generators/lvm2-activation-generator
Found '/builddir/build/BUILDROOT/lvm2-2.02.106-0.311.el7.x86_64' in installed files; aborting
error: Bad exit status from /var/tmp/rpm-tmp.UfX2SX (%install)
---
make.tmpl.in | 3 ++-
man/Makefile.in | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/make.tmpl.in b/make.tmpl.in
index b1a6b8f..cb5b826 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -85,7 +85,7 @@ udevdir = $(DESTDIR)@udevdir@
pkgconfigdir = $(usrlibdir)/pkgconfig
initdir = $(DESTDIR)$(sysconfdir)/rc.d/init.d
systemd_unit_dir = $(DESTDIR)@systemdsystemunitdir@
-systemd_generator_dir = $(DESTDIR)@systemdutildir@/system-generators
+systemd_generator_dir = $(DESTDIR)$(SYSTEMD_GENERATOR_DIR)
systemd_dir = $(DESTDIR)@systemdutildir@
tmpfiles_dir = $(DESTDIR)@tmpfilesdir@
ocf_scriptdir = $(DESTDIR)@OCFDIR@
@@ -94,6 +94,7 @@ pyexecdir = $(DESTDIR)$(prefix)
USRLIB_RELPATH = $(shell echo $(abspath $(usrlibdir) $(libdir)) | \
$(AWK) -f $(top_srcdir)/scripts/relpath.awk)
+SYSTEMD_GENERATOR_DIR = @systemdutildir@/system-generators
DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@
DEFAULT_ARCHIVE_DIR = $(DEFAULT_SYS_DIR)/@DEFAULT_ARCHIVE_SUBDIR@
DEFAULT_BACKUP_DIR = $(DEFAULT_SYS_DIR)/@DEFAULT_BACKUP_SUBDIR@
diff --git a/man/Makefile.in b/man/Makefile.in
index ce3b1ee..40145f1 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -87,7 +87,7 @@ $(MAN5) $(MAN8) $(MAN8DM) $(MAN8CLUSTER): Makefile
%: %.in
@case "$@" in \
*/*) ;; \
- *) echo "Creating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;s+#SYSTEMD_GENERATOR_DIR#+$(systemd_generator_dir)+;" $< > $@ ;; \
+ *) echo "Creating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;" $< > $@ ;; \
esac
install_man5: $(MAN5)
10 years, 2 months
master - man: install lvm2-activation-generator man page only on make install_systemd_generators
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=2189d66a2758e4...
Commit: 2189d66a2758e4be67a32a7d9d24a9df55c31c4c
Parent: 031666ef66bf7b17ded4afcaa9bb97587fca0749
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Thu Mar 13 13:17:58 2014 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Thu Mar 13 13:20:28 2014 +0100
man: install lvm2-activation-generator man page only on make install_systemd_generators
---
man/Makefile.in | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/man/Makefile.in b/man/Makefile.in
index 12a0560..ce3b1ee 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -48,8 +48,7 @@ MAN8=lvchange.8 lvconvert.8 lvcreate.8 lvdisplay.8 lvextend.8 lvm.8 \
pvresize.8 pvs.8 pvscan.8 vgcfgbackup.8 vgcfgrestore.8 vgchange.8 \
vgck.8 vgcreate.8 vgconvert.8 vgdisplay.8 vgexport.8 vgextend.8 \
vgimport.8 vgimportclone.8 vgmerge.8 vgmknodes.8 vgreduce.8 vgremove.8 \
- vgrename.8 vgs.8 vgscan.8 vgsplit.8 lvm2-activation-generator.8 \
- $(FSADMMAN) $(BLKDEACTIVATEMAN) $(LVMETAD)
+ vgrename.8 vgs.8 vgscan.8 vgsplit.8 $(FSADMMAN) $(BLKDEACTIVATEMAN) $(LVMETAD)
ifneq ("@CLVMD@", "none")
MAN8CLUSTER=clvmd.8
10 years, 2 months
master - man: add man page for lvm2-activation-generator
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=031666ef66bf7b...
Commit: 031666ef66bf7b17ded4afcaa9bb97587fca0749
Parent: c0f1eb5f0f8f0a790d1d9e6d9d3e1323c85e4144
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Thu Mar 13 13:01:06 2014 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Thu Mar 13 13:01:06 2014 +0100
man: add man page for lvm2-activation-generator
---
Makefile.in | 1 +
WHATS_NEW | 1 +
man/Makefile.in | 11 +++-
man/lvm2-activation-generator.8.in | 55 ++++++++++++++++++++
.../lvm2_activation_generator_systemd_red_hat.c | 2 +-
5 files changed, 67 insertions(+), 3 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index ce61957..d248a0e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -108,6 +108,7 @@ install_initscripts:
install_systemd_generators:
$(MAKE) -C scripts install_systemd_generators
+ $(MAKE) -C man install_systemd_generators
install_systemd_units:
$(MAKE) -C scripts install_systemd_units
diff --git a/WHATS_NEW b/WHATS_NEW
index c625e5d..ed15f33 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.106 -
====================================
+ Add man page for lvm2-activation-generator.
Don't print an error and accept empty value for global/thin_disabled_features.
Update API for internal function build_dm_uuid().
Do not try to check empty pool with scheduled messages.
diff --git a/man/Makefile.in b/man/Makefile.in
index 8c2ff13..12a0560 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -48,7 +48,8 @@ MAN8=lvchange.8 lvconvert.8 lvcreate.8 lvdisplay.8 lvextend.8 lvm.8 \
pvresize.8 pvs.8 pvscan.8 vgcfgbackup.8 vgcfgrestore.8 vgchange.8 \
vgck.8 vgcreate.8 vgconvert.8 vgdisplay.8 vgexport.8 vgextend.8 \
vgimport.8 vgimportclone.8 vgmerge.8 vgmknodes.8 vgreduce.8 vgremove.8 \
- vgrename.8 vgs.8 vgscan.8 vgsplit.8 $(FSADMMAN) $(BLKDEACTIVATEMAN) $(LVMETAD)
+ vgrename.8 vgs.8 vgscan.8 vgsplit.8 lvm2-activation-generator.8 \
+ $(FSADMMAN) $(BLKDEACTIVATEMAN) $(LVMETAD)
ifneq ("@CLVMD@", "none")
MAN8CLUSTER=clvmd.8
@@ -63,6 +64,8 @@ MAN8DM=dmsetup.8 $(DMEVENTDMAN)
MAN5DIR=$(mandir)/man5
MAN8DIR=$(mandir)/man8
+MAN8SYSTEMD_GENERATORS=lvm2-activation-generator.8
+
CLEAN_TARGETS=$(MAN5) $(MAN8) $(MAN8CLUSTER) $(FSADMMAN) $(BLKDEACTIVATEMAN) $(DMEVENTDMAN) $(MAN8DM)
DISTCLEAN_TARGETS=fsadm.8 clvmd.8 cmirrord.8 dmeventd.8
@@ -85,7 +88,7 @@ $(MAN5) $(MAN8) $(MAN8DM) $(MAN8CLUSTER): Makefile
%: %.in
@case "$@" in \
*/*) ;; \
- *) echo "Creating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;" $< > $@ ;; \
+ *) echo "Creating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;s+#SYSTEMD_GENERATOR_DIR#+$(systemd_generator_dir)+;" $< > $@ ;; \
esac
install_man5: $(MAN5)
@@ -106,4 +109,8 @@ install_device-mapper: $(MAN8DM)
$(INSTALL) -d $(MAN8DIR)
$(INSTALL_DATA) $(MAN8DM) $(MAN8DIR)/
+install_systemd_generators: $(MAN8SYSTEMD_GENERATORS)
+ $(INSTALL) -d $(MAN8DIR)
+ $(INSTALL_DATA) $(MAN8SYSTEMD_GENERATORS) $(MAN8DIR)/
+
install: install_lvm2 install_device-mapper
diff --git a/man/lvm2-activation-generator.8.in b/man/lvm2-activation-generator.8.in
new file mode 100644
index 0000000..bd47397
--- /dev/null
+++ b/man/lvm2-activation-generator.8.in
@@ -0,0 +1,55 @@
+.TH "LVM2-ACTIVATION-GENERATOR" "8" "LVM TOOLS #VERSION#" "Red Hat, Inc" "\""
+.SH "NAME"
+lvm2-activation-generator \- generator for systemd units to activate LVM2 volumes on boot
+.SH SYNOPSIS
+.B #SYSTEMD_GENERATOR_DIR#/lvm2-activation-generator
+.sp
+.SH DESCRIPTION
+The lvm2-activation-generator is called by \fBsystemd\fP(1) on boot
+to generate systemd units at runtime to activate LVM2 volumes if
+\fBlvmetad\fP(8) is disabled (global/use_lvmetad=0 \fBlvm.conf\fP(5)
+option is used). Otherwise, if \fBlvmetad\fP(8) is enabled,
+the lvm2-activation-generator exits immediately without generating
+any systemd units and LVM2 fully relies on event-based activation
+to activate the LVM2 volumes instead using the \fBpvscan\fP(8)
+(pvscan --cache -aay) call that is a part of \fBudev\fP(8) rules.
+
+These systemd units are generated by lvm2-activation-generator:
+.sp
+\fIlvm2-activation-early.service\fP
+used for activation of LVM2 volumes that is ordered before systemd's
+special \fBcryptsetup.target\fP to support LVM2 volumes which are not
+layered on top of encrypted devices.
+
+\fIlvm2-activation.service\fP
+used for activation of LVM2 volumes that is ordered after systemd's
+special \fBcryptsetup.target\fP to support LVM2 volumes which are
+layered on top of encrypted devices.
+
+\fIlvm2-activation-net.service\fP
+used for activation of LVM2 volumes that is ordered after systemd's
+special \fBremote-fs.target\fP to support LVM2 volumes which are layered
+on attached remote devices.
+
+Note that all the underlying devices (Physical Volumes) need to be present
+when the service is run. If the there are any devices presented in the system
+anytime later, any LVM2 volumes on top of such devices need to be activated
+directly by \fBlvchange\fP(8) or \fBvgchange\fP(8). This limitation does
+not exist when using \fBlvmetad\fP(8) and accompanying event-based activation
+since such LVM volumes are activated automatically as soon as the Volume Group
+is ready (all the Physical Volumes making up the Volume Group are present
+in the system).
+
+The lvm2-activation-generator implements the \fBGenerator Specification\fP
+as referenced in \fBsystemd\fP(1).
+.sp
+.SH SEE ALSO
+.BR lvm.conf (5)
+.BR vgchange (8)
+.BR lvchange (8)
+.BR lvmetad (8)
+.BR pvscan (8)
+.BR udev (7)
+.BR systemd (1)
+.BR systemd.target (5)
+.BR systemd.special (7)
diff --git a/scripts/lvm2_activation_generator_systemd_red_hat.c b/scripts/lvm2_activation_generator_systemd_red_hat.c
index 07a2563..e39f901 100644
--- a/scripts/lvm2_activation_generator_systemd_red_hat.c
+++ b/scripts/lvm2_activation_generator_systemd_red_hat.c
@@ -129,7 +129,7 @@ static int generate_unit(const char *dir, int unit)
"# Direct LVM2 activation requires udev to be settled!\n\n"
"[Unit]\n"
"Description=Activation of LVM2 logical volumes\n"
- "Documentation=man:lvm(8) man:vgchange(8)\n"
+ "Documentation=man:lvm2-activation-generator(8)\n"
"SourcePath=/etc/lvm/lvm.conf\n"
"DefaultDependencies=no\n", f);
10 years, 2 months
master - dev_manager: check prohibited devices earlier
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=c0f1eb5f0f8f0a...
Commit: c0f1eb5f0f8f0a790d1d9e6d9d3e1323c85e4144
Parent: b50b4471bd863304a78b194d1ef10b85cc9666f7
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Mar 12 19:38:34 2014 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Mar 12 19:38:34 2014 +0100
dev_manager: check prohibited devices earlier
Reorder detection for internal device - since this test
is much simpler then target analysis, check it sooner.
Replace test for '68' with sizeof & ID_LEN
Add FIXME about device alias problem with is_reserved_lvname,
since this test fails on devices like /dev/dm-X
so we need to convert tests to UUID.
---
lib/activate/dev_manager.c | 41 +++++++++++++++++++++--------------------
1 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
index c723a61..490218c 100644
--- a/lib/activate/dev_manager.c
+++ b/lib/activate/dev_manager.c
@@ -392,6 +392,27 @@ static int _device_is_usable(struct device *dev, int check_lv_names)
goto out;
}
+ /* Check internal lvm devices */
+ if (check_lv_names &&
+ uuid && !strncmp(uuid, UUID_PREFIX, sizeof(UUID_PREFIX) - 1)) {
+ if (strlen(uuid) > (sizeof(UUID_PREFIX) + 2 * ID_LEN)) { /* 68 */
+ log_debug_activation("%s: Reserved uuid %s on internal LV device %s not usable.",
+ dev_name(dev), uuid, name);
+ goto out;
+ }
+
+ if (!(vgname = dm_strdup(name)) ||
+ !dm_split_lvm_name(NULL, NULL, &vgname, &lvname, &layer))
+ goto_out;
+
+ /* FIXME: fails to handle dev aliases i.e. /dev/dm-5, replace with UUID suffix */
+ if (lvname && (is_reserved_lvname(lvname) || *layer)) {
+ log_debug_activation("%s: Reserved internal LV device %s/%s%s%s not usable.",
+ dev_name(dev), vgname, lvname, *layer ? "-" : "", layer);
+ goto out;
+ }
+ }
+
/* FIXME Also check for mpath no paths */
do {
next = dm_get_next_target(dmt, next, &start, &length,
@@ -439,26 +460,6 @@ static int _device_is_usable(struct device *dev, int check_lv_names)
/* FIXME Also check dependencies? */
- /* Check internal lvm devices */
- if (check_lv_names &&
- uuid && !strncmp(uuid, UUID_PREFIX, sizeof(UUID_PREFIX) - 1)) {
- if (!(vgname = dm_strdup(name)) ||
- !dm_split_lvm_name(NULL, NULL, &vgname, &lvname, &layer))
- goto_out;
-
- if (strlen(uuid) > 68) {
- log_debug_activation("%s: Reserved uuid %s on internal LV device %s/%s%s%s not usable.",
- dev_name(dev), uuid, vgname, lvname, *layer ? "-" : "", layer);
- goto out;
- }
-
- if (lvname && (is_reserved_lvname(lvname) || *layer)) {
- log_debug_activation("%s: Reserved internal LV device %s/%s%s%s not usable.",
- dev_name(dev), vgname, lvname, *layer ? "-" : "", layer);
- goto out;
- }
- }
-
r = 1;
out:
10 years, 2 months
master - cleanup: drop unused define
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=b50b4471bd8633...
Commit: b50b4471bd863304a78b194d1ef10b85cc9666f7
Parent: 8b14ebb2f153408f3ea4e6a1ca16e1e63bdfefe7
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Mar 12 19:12:34 2014 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Mar 12 19:12:34 2014 +0100
cleanup: drop unused define
---
lib/uuid/uuid.h | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/lib/uuid/uuid.h b/lib/uuid/uuid.h
index 60bec65..d39ad88 100644
--- a/lib/uuid/uuid.h
+++ b/lib/uuid/uuid.h
@@ -17,7 +17,6 @@
#define _LVM_UUID_H
#define ID_LEN 32
-#define ID_LEN_S "32"
#include <inttypes.h>
#include <sys/types.h>
10 years, 2 months
master - tests: another kernel with unusable kmem_check
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=8b14ebb2f15340...
Commit: 8b14ebb2f153408f3ea4e6a1ca16e1e63bdfefe7
Parent: bf42119b22731c97e8169ee8526ff6bda4a3d7bf
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Mar 12 16:16:41 2014 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Mar 12 16:17:36 2014 +0100
tests: another kernel with unusable kmem_check
---
test/lib/aux.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index 53d0fc7..c3adb56 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -678,7 +678,7 @@ raid456_replace_works() {
#
case $(uname -r) in
3.10.11-200.fc19.i686|3.10.11-200.fc19.x86_64) return 1 ;;
- 3.13.5-101.fc19.i686.PAE) return 1 ;;
+ 3.13.5-101.fc19.i686.PAE|3.13.6-200.fc20.x86_64) return 1 ;;
esac
}
10 years, 2 months