main - raid: restore mirror handling in _raid_in_sync
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=05920e3818b22c24dde...
Commit: 05920e3818b22c24dde59b3e562fe156466f83f2
Parent: edcc410835641c9ea7bd15810657e0d16608c00f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sat Mar 20 10:35:53 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 10:52:24 2021 +0100
raid: restore mirror handling in _raid_in_sync
Function is not having the best name since it does check
no just raid LVs to be in sync.
Restore the mirror percentage checking - although without retries,
since only raid target is currently known to need it - for other
types it would be ATM a bug to get inconsistent result.
---
lib/metadata/raid_manip.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 33fd017cb..05b7caf9c 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -398,7 +398,14 @@ static int _raid_in_sync(const struct logical_volume *lv)
if (seg_is_striped(first_seg(lv)))
return 1;
- do {
+ if (!lv_is_raid(lv)) {
+ /* For non raid - fallback to mirror percentage */
+ if (!lv_mirror_percent(lv->vg->cmd, lv, 0, &sync_percent, NULL)) {
+ log_error("Cannot determine sync percentage of %s.",
+ display_lvname(lv));
+ return 0;
+ }
+ } else do {
/*
* FIXME We repeat the status read here to workaround an
* unresolved kernel bug when we see 0 even though the
3 years, 1 month
main - tests: fix condition for exclusion of /dev
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=edcc410835641c9ea7b...
Commit: edcc410835641c9ea7bd15810657e0d16608c00f
Parent: d5b37f24f4f8914b2ab12c9fb352b2b84ca87c16
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sat Mar 20 00:28:13 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:28:13 2021 +0100
tests: fix condition for exclusion of /dev
---
test/lib/inittest.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh
index 58fa2e5e6..0014a8cfd 100644
--- a/test/lib/inittest.sh
+++ b/test/lib/inittest.sh
@@ -79,7 +79,7 @@ if test -z "$SKIP_ROOT_DM_CHECK" ; then
fi
test -n "$LVM_TEST_DIR" || LVM_TEST_DIR=${TMPDIR:-/tmp}
-test "$LVM_TEST_DIR" = "/dev" || die "Setting LVM_TEST_DIR=/dev is not supported"
+test "$LVM_TEST_DIR" = "/dev" && die "Setting LVM_TEST_DIR=/dev is not supported!"
TESTDIR=$(mkdtemp "$LVM_TEST_DIR" "$PREFIX.XXXXXXXXXX") || \
die "failed to create temporary directory in \"$LVM_TEST_DIR\""
3 years, 1 month
main - tests: aux reject /dev as testing dir
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=d5b37f24f4f8914b2ab...
Commit: d5b37f24f4f8914b2ab12c9fb352b2b84ca87c16
Parent: e27baa791f0e28e9df539c97e25a0a8b1b1c20f7
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 10:39:00 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:05:01 2021 +0100
tests: aux reject /dev as testing dir
If LVM_TEST_DIR would be set to /dev, reject such selection.
---
test/lib/inittest.sh | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh
index ee049fb79..58fa2e5e6 100644
--- a/test/lib/inittest.sh
+++ b/test/lib/inittest.sh
@@ -78,9 +78,11 @@ if test -z "$SKIP_ROOT_DM_CHECK" ; then
dmsetup table | not grep "${PREFIX}[^0-9]" || die "DM table already has devices with prefix $PREFIX!"
fi
-if test -z "$LVM_TEST_DIR"; then LVM_TEST_DIR=$TMPDIR; fi
-TESTDIR=$(mkdtemp "${LVM_TEST_DIR:-/tmp}" "$PREFIX.XXXXXXXXXX") || \
- die "failed to create temporary directory in ${LVM_TEST_DIR:-$TESTOLDPWD}"
+test -n "$LVM_TEST_DIR" || LVM_TEST_DIR=${TMPDIR:-/tmp}
+test "$LVM_TEST_DIR" = "/dev" || die "Setting LVM_TEST_DIR=/dev is not supported"
+
+TESTDIR=$(mkdtemp "$LVM_TEST_DIR" "$PREFIX.XXXXXXXXXX") || \
+ die "failed to create temporary directory in \"$LVM_TEST_DIR\""
RUNNING_DMEVENTD=$(pgrep dmeventd || true)
export TESTOLDPWD TESTDIR COMMON_PREFIX PREFIX RUNNING_DMEVENTD
3 years, 1 month
main - tests: drop status workaround
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e27baa791f0e28e9df5...
Commit: e27baa791f0e28e9df539c97e25a0a8b1b1c20f7
Parent: ed90a3d9b4247130794ed515b9547e9b4dbbf2dc
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 02:06:46 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:05:01 2021 +0100
tests: drop status workaround
lvconvert should now recognize resync from older kernels.
---
test/shell/lvconvert-raid.sh | 6 ------
1 file changed, 6 deletions(-)
diff --git a/test/shell/lvconvert-raid.sh b/test/shell/lvconvert-raid.sh
index 1ab2d4fd3..6aaaf3669 100644
--- a/test/shell/lvconvert-raid.sh
+++ b/test/shell/lvconvert-raid.sh
@@ -232,12 +232,6 @@ lvcreate -aey -l 2 -n $lv1 $vg "$dev1"
lvconvert -y -m 1 $vg/$lv1 \
--config 'global { mirror_segtype_default = "raid1" }' "$dev2"
lvs --noheadings -o attr $vg/$lv1 | grep '^[[:space:]]*r'
-# FIXME: lvconvert/lvcreate should trace state of target
-for i in {1..10}; do
- dmsetup status | grep $vg-$lv1: | tee out
- grep -E "recover|rebuild" out && break
- sleep .05
-done
not lvconvert --yes -m 0 $vg/$lv1 "$dev1"
lvconvert --yes -m 0 $vg/$lv1 "$dev2"
aux enable_dev "$dev2"
3 years, 1 month
main - tests: copy more data
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=ed90a3d9b4247130794...
Commit: ed90a3d9b4247130794ed515b9547e9b4dbbf2dc
Parent: fe3ef6867fc585a26bf9950f66b4f190993f457c
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 00:52:06 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:05:01 2021 +0100
tests: copy more data
Give pvmove --abort bigger aborting window.
---
test/shell/pvmove-abort.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/shell/pvmove-abort.sh b/test/shell/pvmove-abort.sh
index 14457991c..f5744d430 100644
--- a/test/shell/pvmove-abort.sh
+++ b/test/shell/pvmove-abort.sh
@@ -22,7 +22,7 @@ aux target_at_least dm-mirror 1 10 0 || skip
# Throttle mirroring
aux throttle_dm_mirror || skip
-aux prepare_pvs 3 60
+aux prepare_pvs 3 90
vgcreate -s 512k $vg "$dev1" "$dev2"
pvcreate --metadatacopies 0 "$dev3"
@@ -34,8 +34,8 @@ for backgroundarg in "-b" "" ;
do
# Create multisegment LV
-lvcreate -an -Zn -l40 -n $lv1 $vg "$dev1"
-lvcreate -an -Zn -l50 -n $lv2 $vg "$dev2"
+lvcreate -an -Zn -l60 -n $lv1 $vg "$dev1"
+lvcreate -an -Zn -l80 -n $lv2 $vg "$dev2"
cmd1=(pvmove -i1 $backgroundarg $mode "$dev1" "$dev3")
cmd2=(pvmove -i1 $backgroundarg $mode "$dev2" "$dev3")
3 years, 1 month
main - tests: require newer raid version
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fe3ef6867fc585a26bf...
Commit: fe3ef6867fc585a26bf9950f66b4f190993f457c
Parent: 3d26bde1c02b5b3cdfe6bbf87dcad8ce552b0bba
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 00:09:19 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:05:01 2021 +0100
tests: require newer raid version
Tests needs reshape support - so require newer target version
as quick fix.
TODO: inspect indiviual supportable conversion with older versions.
---
test/shell/lvconvert-raid-takeover.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/shell/lvconvert-raid-takeover.sh b/test/shell/lvconvert-raid-takeover.sh
index 6a4d554e8..0265d4871 100644
--- a/test/shell/lvconvert-raid-takeover.sh
+++ b/test/shell/lvconvert-raid-takeover.sh
@@ -16,7 +16,7 @@ SKIP_WITH_LVMPOLLD=1
. lib/inittest
which mkfs.ext4 || skip
-aux have_raid 1 9 0 || skip
+aux have_raid 1 12 0 || skip
correct_raid4_layout=0
aux have_raid 1 9 1 && correct_raid4_layout=1
3 years, 1 month
main - make: cflow target works again
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=3d26bde1c02b5b3cdfe...
Commit: 3d26bde1c02b5b3cdfe6bbf87dcad8ce552b0bba
Parent: e86798203e4d2775aa418db6a17b908de7e15130
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 23:10:55 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Sat Mar 20 00:05:01 2021 +0100
make: cflow target works again
Restored 'make cflow' functinality.
Produces some quick referece of function chaining and usage.
---
daemons/cmirrord/Makefile.in | 3 +++
daemons/dmeventd/Makefile.in | 19 ++++++++++---------
daemons/dmeventd/plugins/mirror/Makefile.in | 3 ---
daemons/dmeventd/plugins/raid/Makefile.in | 3 ---
daemons/dmeventd/plugins/thin/Makefile.in | 3 ---
daemons/dmeventd/plugins/vdo/Makefile.in | 3 ---
daemons/lvmlockd/Makefile.in | 3 +++
daemons/lvmpolld/Makefile.in | 7 +++----
lib/Makefile.in | 1 +
libdm/Makefile.in | 1 +
libdm/dm-tools/Makefile.in | 5 +++++
libdm/make.tmpl.in | 18 ++++++++----------
make.tmpl.in | 14 ++++++--------
tools/Makefile.in | 10 +++-------
14 files changed, 43 insertions(+), 50 deletions(-)
diff --git a/daemons/cmirrord/Makefile.in b/daemons/cmirrord/Makefile.in
index 301e6c6a2..8f68ba91c 100644
--- a/daemons/cmirrord/Makefile.in
+++ b/daemons/cmirrord/Makefile.in
@@ -22,6 +22,9 @@ SOURCES = clogd.c cluster.c compat.c functions.c link_mon.c local.c logging.c
TARGETS = cmirrord
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
+CFLOW_TARGET := $(TARGETS)
+
include $(top_builddir)/make.tmpl
LMLIBS += $(CPG_LIBS)
diff --git a/daemons/dmeventd/Makefile.in b/daemons/dmeventd/Makefile.in
index 99e4a816f..c737ca40d 100644
--- a/daemons/dmeventd/Makefile.in
+++ b/daemons/dmeventd/Makefile.in
@@ -14,11 +14,21 @@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
+abs_srcdir = @abs_srcdir@
SOURCES = libdevmapper-event.c
SOURCES2 = dmeventd.c
TARGETS = dmeventd
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES) $(SOURCES2) \
+ plugins/lvm2/dmeventd_lvm.c \
+ plugins/mirror/dmeventd_mirror.c \
+ plugins/raid/dmeventd_raid.c \
+ plugins/snapshot/dmeventd_snapshot.c \
+ plugins/thin/dmeventd_thin.c \
+ plugins/vdo/dmeventd_vdo.c \
+ )
+CFLOW_TARGET := $(TARGETS)
.PHONY: install_lib_dynamic install_lib_static install_include \
install_pkgconfig install_dmeventd_dynamic install_dmeventd_static \
@@ -46,7 +56,6 @@ endif
CFLOW_LIST = $(SOURCES)
CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-CFLOW_TARGET = dmeventd
EXPORTED_HEADER = $(srcdir)/libdevmapper-event.h
EXPORTED_FN_PREFIX = dm_event
@@ -73,14 +82,6 @@ ifeq ("@PKGCONFIG@", "yes")
INSTALL_LIB_TARGETS += install_pkgconfig
endif
-ifneq ("$(CFLOW_CMD)", "")
-CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
--include $(top_builddir)/lib/liblvm-internal.cflow
--include $(top_builddir)/lib/liblvm2cmd.cflow
--include $(top_builddir)/daemons/dmeventd/$(LIB_NAME).cflow
--include $(top_builddir)/daemons/dmeventd/plugins/mirror/$(LIB_NAME)-lvm2mirror.cflow
-endif
-
install_include: $(srcdir)/libdevmapper-event.h
@echo " [INSTALL] $(<F)"
$(Q) $(INSTALL_DATA) -D $< $(includedir)/$(<F)
diff --git a/daemons/dmeventd/plugins/mirror/Makefile.in b/daemons/dmeventd/plugins/mirror/Makefile.in
index 62d94c996..1552d9746 100644
--- a/daemons/dmeventd/plugins/mirror/Makefile.in
+++ b/daemons/dmeventd/plugins/mirror/Makefile.in
@@ -25,9 +25,6 @@ LIB_NAME = libdevmapper-event-lvm2mirror
LIB_SHARED = $(LIB_NAME).$(LIB_SUFFIX)
LIB_VERSION = $(LIB_VERSION_LVM)
-CFLOW_LIST = $(SOURCES)
-CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-
include $(top_builddir)/make.tmpl
install_lvm2: install_dm_plugin
diff --git a/daemons/dmeventd/plugins/raid/Makefile.in b/daemons/dmeventd/plugins/raid/Makefile.in
index abc935d45..2082351c8 100644
--- a/daemons/dmeventd/plugins/raid/Makefile.in
+++ b/daemons/dmeventd/plugins/raid/Makefile.in
@@ -24,9 +24,6 @@ LIB_NAME = libdevmapper-event-lvm2raid
LIB_SHARED = $(LIB_NAME).$(LIB_SUFFIX)
LIB_VERSION = $(LIB_VERSION_LVM)
-CFLOW_LIST = $(SOURCES)
-CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-
include $(top_builddir)/make.tmpl
install_lvm2: install_dm_plugin
diff --git a/daemons/dmeventd/plugins/thin/Makefile.in b/daemons/dmeventd/plugins/thin/Makefile.in
index c1cbee792..b98e42636 100644
--- a/daemons/dmeventd/plugins/thin/Makefile.in
+++ b/daemons/dmeventd/plugins/thin/Makefile.in
@@ -24,9 +24,6 @@ LIB_NAME = libdevmapper-event-lvm2thin
LIB_SHARED = $(LIB_NAME).$(LIB_SUFFIX)
LIB_VERSION = $(LIB_VERSION_LVM)
-CFLOW_LIST = $(SOURCES)
-CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-
include $(top_builddir)/make.tmpl
install_lvm2: install_dm_plugin
diff --git a/daemons/dmeventd/plugins/vdo/Makefile.in b/daemons/dmeventd/plugins/vdo/Makefile.in
index 84adb7445..44942ea2d 100644
--- a/daemons/dmeventd/plugins/vdo/Makefile.in
+++ b/daemons/dmeventd/plugins/vdo/Makefile.in
@@ -24,9 +24,6 @@ LIB_NAME = libdevmapper-event-lvm2vdo
LIB_SHARED = $(LIB_NAME).$(LIB_SUFFIX)
LIB_VERSION = $(LIB_VERSION_LVM)
-CFLOW_LIST = $(SOURCES)
-CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-
include $(top_builddir)/make.tmpl
install_lvm2: install_dm_plugin
diff --git a/daemons/lvmlockd/Makefile.in b/daemons/lvmlockd/Makefile.in
index bd577d1e6..ec5d5750a 100644
--- a/daemons/lvmlockd/Makefile.in
+++ b/daemons/lvmlockd/Makefile.in
@@ -34,6 +34,9 @@ SOURCES2 = lvmlockctl.c
TARGETS = lvmlockd lvmlockctl
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
+CFLOW_TARGET = lvmlockd
+
.PHONY: install_lvmlockd
include $(top_builddir)/make.tmpl
diff --git a/daemons/lvmpolld/Makefile.in b/daemons/lvmpolld/Makefile.in
index 05b12ff2c..3e85644d7 100644
--- a/daemons/lvmpolld/Makefile.in
+++ b/daemons/lvmpolld/Makefile.in
@@ -19,11 +19,10 @@ SOURCES = lvmpolld-core.c lvmpolld-data-utils.c lvmpolld-cmd-utils.c
TARGETS = lvmpolld
-.PHONY: install_lvmpolld
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
+CFLOW_TARGET := $(TARGETS)
-CFLOW_LIST = $(SOURCES)
-CFLOW_LIST_TARGET = $(LIB_NAME).cflow
-CFLOW_TARGET = lvmpolld
+.PHONY: install_lvmpolld
include $(top_builddir)/make.tmpl
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 3409cbd8c..900ae2f83 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -15,6 +15,7 @@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
+abs_srcdir = @abs_srcdir@
SOURCES =\
activate/activate.c \
diff --git a/libdm/Makefile.in b/libdm/Makefile.in
index e9bb5ae2f..12fec06b4 100644
--- a/libdm/Makefile.in
+++ b/libdm/Makefile.in
@@ -15,6 +15,7 @@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
+abs_srcdir = @abs_srcdir@
SUBDIRS=dm-tools
diff --git a/libdm/dm-tools/Makefile.in b/libdm/dm-tools/Makefile.in
index 0b2ef9605..8fbdfc152 100644
--- a/libdm/dm-tools/Makefile.in
+++ b/libdm/dm-tools/Makefile.in
@@ -20,6 +20,11 @@ all: device-mapper
SOURCES2 = dmsetup.c
TARGETS_DM = dmsetup
+
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES2))
+CFLOW_TARGET := $(TARGETS_DM)
+-include $(top_builddir)/libdm/libdevmapper.cflow
+
install_device-mapper: install_dmsetup_dynamic
ifeq ("@STATIC_LINK@", "yes")
diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in
index 549ef79d9..70edcf91d 100644
--- a/libdm/make.tmpl.in
+++ b/libdm/make.tmpl.in
@@ -347,8 +347,7 @@ $(SUBDIRS.generate):
ifneq ("$(CFLOW_LIST_TARGET)", "")
CLEAN_CFLOW += $(CFLOW_LIST_TARGET)
$(CFLOW_LIST_TARGET): $(CFLOW_LIST)
- echo "CFLOW_SOURCES += $(addprefix \
- \$$(top_srcdir)$(subst $(top_srcdir),,$(srcdir))/, $(CFLOW_LIST))" > $@
+ echo "CFLOW_SOURCES += $(addprefix $(abs_srcdir)/, $(CFLOW_LIST))" > $@
cflow: $(CFLOW_LIST_TARGET)
endif
@@ -362,23 +361,22 @@ CLEAN_CFLOW += \
ifneq ("$(CFLOW_CMD)", "")
CFLOW_FLAGS +=\
- --cpp="$(CC) -E" \
+ --cpp="$(CC) -E $(INCLUDES) $(VALGRIND_CFLAGS) $(BLKID_CFLAGS) $(DEFS) \
+ -I$(top_srcdir)/libdm/ioctl \
+ -I$(top_srcdir)/libdm" \
--symbol _ISbit:wrapper \
--symbol __attribute__:wrapper \
- --symbol __const__:wrapper \
--symbol __const:type \
- --symbol __restrict:type \
+ --symbol __const__:wrapper \
--symbol __extension__:wrapper \
+ --symbol __leaf__:wrapper \
--symbol __nonnull:wrapper \
--symbol __nothrow__:wrapper \
--symbol __pure__:wrapper \
--symbol __REDIRECT:wrapper \
--symbol __REDIRECT_NTH:wrapper \
- --symbol __wur:wrapper \
- -I$(top_srcdir)/libdm \
- -I$(top_srcdir)/libdm/ioctl \
- -I$(top_srcdir)/daemons/dmeventd/plugins/lvm2/ \
- $(INCLUDES) $(DEFS)
+ --symbol __restrict:type \
+ --symbol __wur:wrapper
$(CFLOW_TARGET).cflow: $(CFLOW_SOURCES)
$(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) $(CFLOW_SOURCES)
diff --git a/make.tmpl.in b/make.tmpl.in
index 75bb4f243..d95d956fa 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -388,8 +388,7 @@ $(SUBDIRS.generate):
ifneq ("$(CFLOW_LIST_TARGET)", "")
CLEAN_CFLOW += $(CFLOW_LIST_TARGET)
$(CFLOW_LIST_TARGET): $(CFLOW_LIST)
- echo "CFLOW_SOURCES += $(addprefix \
- \$$(top_srcdir)$(subst $(top_srcdir),,$(srcdir))/, $(CFLOW_LIST))" > $@
+ echo "CFLOW_SOURCES += $(addprefix $(abs_srcdir)/, $(CFLOW_LIST))" > $@
cflow: $(CFLOW_LIST_TARGET)
endif
@@ -403,21 +402,20 @@ CLEAN_CFLOW += \
ifneq ("$(CFLOW_CMD)", "")
CFLOW_FLAGS +=\
- --cpp="$(CC) -E" \
+ --cpp="$(CC) -E $(INCLUDES) $(VALGRIND_CFLAGS) $(BLKID_CFLAGS) $(DEFS)" \
--symbol _ISbit:wrapper \
--symbol __attribute__:wrapper \
- --symbol __const__:wrapper \
--symbol __const:type \
- --symbol __restrict:type \
+ --symbol __const__:wrapper \
--symbol __extension__:wrapper \
+ --symbol __leaf__:wrapper \
--symbol __nonnull:wrapper \
--symbol __nothrow__:wrapper \
--symbol __pure__:wrapper \
--symbol __REDIRECT:wrapper \
--symbol __REDIRECT_NTH:wrapper \
- --symbol __wur:wrapper \
- -I$(top_srcdir)/daemons/dmeventd/plugins/lvm2/ \
- $(INCLUDES) $(DEFS)
+ --symbol __restrict:type \
+ --symbol __wur:wrapper
$(CFLOW_TARGET).cflow: $(CFLOW_SOURCES)
$(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) $(CFLOW_SOURCES)
diff --git a/tools/Makefile.in b/tools/Makefile.in
index a099973e1..e871fbddd 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -109,9 +109,9 @@ endif
EXPORTED_HEADER = $(srcdir)/lvm2cmd.h
EXPORTED_FN_PREFIX = lvm2
-CFLOW_LIST = lvmcmdlib.c lvm2cmd.c
-CFLOW_LIST_TARGET = liblvm2cmd.cflow
CFLOW_TARGET = lvm
+CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES) lvmcmdlib.c lvm2cmd.c)
+-include $(top_builddir)/lib/liblvm-internal.cflow
include $(top_builddir)/make.tmpl
@@ -198,11 +198,7 @@ command-lines-input.h: $(srcdir)/command-lines.in Makefile
$(SOURCES:%.c=%.d) $(SOURCES2:%.c=%.d): command-lines-input.h command-count.h cmds.h
$(SOURCES:%.c=%.o) $(SOURCES2:%.c=%.o): command-lines-input.h command-count.h cmds.h
-
-ifneq ("$(CFLOW_CMD)", "")
-CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
--include $(top_builddir)/lib/liblvm-internal.cflow
-endif
+lvm.cflow lvm.xref lvm.tree lvm.xref: command-lines-input.h command-count.h cmds.h
.PHONY: install_cmdlib_dynamic install_cmdlib_static install_cmdlib_include \
install_tools_dynamic install_tools_static
3 years, 1 month
main - make: simplify dependency loading
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e86798203e4d2775aa4...
Commit: e86798203e4d2775aa418db6a17b908de7e15130
Parent: 48d04afaa2015fe285b2ae499b7f06d0b25ae00d
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 16:12:10 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Mar 19 23:21:18 2021 +0100
make: simplify dependency loading
No need for extra ifdefs around.
---
libdm/make.tmpl.in | 8 ++------
make.tmpl.in | 8 +-------
2 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in
index 083fba9c3..549ef79d9 100644
--- a/libdm/make.tmpl.in
+++ b/libdm/make.tmpl.in
@@ -530,11 +530,7 @@ endif
ifeq ("@USE_TRACKING@","yes")
ifeq (,$(findstring $(MAKECMDGOALS),cscope.out cflow clean distclean lcov \
help check check_local check_cluster check_lvmpolld))
- ifdef SOURCES
- -include $(SOURCES:.c=.d) $(CXXSOURCES:.cpp=.d)
- endif
- ifdef SOURCES2
- -include $(SOURCES2:.c=.d)
- endif
+# Note: no tabs before -include
+ -include $(SOURCES:.c=.d) $(SOURCES2:.c=.d) $(CXXSOURCES:.cpp=.d)
endif
endif
diff --git a/make.tmpl.in b/make.tmpl.in
index 6f3f81915..75bb4f243 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -570,12 +570,6 @@ ifeq ("$(USE_TRACKING)","yes")
ifeq (,$(findstring $(MAKECMDGOALS),cscope.out cflow clean distclean lcov lcov-reset \
help check check_local check_cluster check_lvmpolld run-unit-test tags))
# Note: no tabs before -include
- ifdef SOURCES
- -include $(SOURCES:.c=.d) $(CXXSOURCES:.cpp=.d)
- endif
- ifdef SOURCES2
- -include $(SOURCES2:.c=.d)
- endif
- DEPENDS = yes
+ -include $(SOURCES:.c=.d) $(SOURCES2:.c=.d) $(CXXSOURCES:.cpp=.d)
endif
endif
3 years, 1 month
main - make: restore buildir != srcdir support
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=48d04afaa2015fe285b...
Commit: 48d04afaa2015fe285b2ae499b7f06d0b25ae00d
Parent: c6a76c1ffe8321a4f2ed988fe5884541489e120f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Mar 19 14:47:21 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Mar 19 23:21:18 2021 +0100
make: restore buildir != srcdir support
Our new faster deps generation missed support for
buildirs != srcdir - as it can be usable to have
several builds from unchanged directory with sources.
---
libdm/make.tmpl.in | 5 ++++-
make.tmpl.in | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in
index af55a7f91..083fba9c3 100644
--- a/libdm/make.tmpl.in
+++ b/libdm/make.tmpl.in
@@ -404,14 +404,17 @@ DEFS+=-D_FILE_OFFSET_BITS=64
%.o: %.c $(DEPS)
@echo " [CC] $(<F)"
+ @mkdir -p $(@D)
$(Q) $(CC) $(DEPFLAGS) -c $(INCLUDES) $(VALGRIND_CFLAGS) $(PROGS_CFLAGS) $(DEFS) $(DEFS_$@) $(WFLAGS) $(WCFLAGS) $(CFLAGS) $(CFLAGS_$@) $< -o $@
%.o: %.cpp $(DEPS)
@echo " [CXX] $(<F)"
+ @mkdir -p $(@D)
$(Q) $(CXX) -c $(INCLUDES) $(VALGRIND_CFLAGS) $(DEFS) $(DEFS_$@) $(WFLAGS) $(CXXFLAGS) $(CXXFLAGS_$@) $< -o $@
-%.pot: %.c Makefile
+%.pot: %.c $(DEPS)
@echo " [CC] $@"
+ @mkdir -p $(@D)
$(Q) $(CC) -E $(INCLUDES) $(VALGRIND_CFLAGS) $(PROGS_CFLAGS) -include $(top_builddir)/po/pogen.h $(DEFS) $(WFLAGS) $(CFLAGS) $< >$@
%.so: %.o
diff --git a/make.tmpl.in b/make.tmpl.in
index 2611dcd90..6f3f81915 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -443,14 +443,17 @@ DEFS+=-D_FILE_OFFSET_BITS=64
%.o: %.c $(DEPS)
@echo " [CC] $(<F)"
+ @mkdir -p $(@D)
$(Q) $(CC) $(DEPFLAGS) -c $(INCLUDES) $(VALGRIND_CFLAGS) $(PROGS_CFLAGS) $(DEFS) $(DEFS_$@) $(WFLAGS) $(WCFLAGS) $(CFLAGS) $(CFLAGS_$@) $< -o $@
%.o: %.cpp $(DEPS)
@echo " [CXX] $(<F)"
+ @mkdir -p $(@D)
$(Q) $(CXX) -c $(INCLUDES) $(VALGRIND_CFLAGS) $(DEFS) $(DEFS_$@) $(WFLAGS) $(CXXFLAGS) $(CXXFLAGS_$@) $< -o $@
-%.pot: %.c Makefile
+%.pot: %.c $(DEPS)
@echo " [CC] $(<F)"
+ @mkdir -p $(@D)
$(Q) $(CC) -E $(INCLUDES) $(VALGRIND_CFLAGS) $(PROGS_CFLAGS) -include $(top_builddir)/po/pogen.h $(DEFS) $(WFLAGS) $(CFLAGS) $< >$@
%.so: %.o
3 years, 1 month
main - make: generate
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=c6a76c1ffe8321a4f2e...
Commit: c6a76c1ffe8321a4f2ed988fe5884541489e120f
Parent: 81d3639955f0553d691e304dcc0b2eaaf6f24bb6
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu Mar 18 23:01:26 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Mar 19 23:21:18 2021 +0100
make: generate
Add new lvmdevices.8_pregen and vgimportdevices.8_pregen.
---
man/lvconvert.8_pregen | 6 +-
man/lvmdevices.8_pregen | 553 +++++++++++++++++++++++++++++++++++++++++++
man/vgimportdevices.8_pregen | 383 ++++++++++++++++++++++++++++++
3 files changed, 939 insertions(+), 3 deletions(-)
diff --git a/man/lvconvert.8_pregen b/man/lvconvert.8_pregen
index c645d6a56..63fbc093c 100644
--- a/man/lvconvert.8_pregen
+++ b/man/lvconvert.8_pregen
@@ -597,7 +597,7 @@ Merge LV images that were split from a raid1 LV.
Convert LV to a thin LV, using the original LV as an external origin.
.br
.P
-\fBlvconvert\fP \fB--type\fP \fBthin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_thin_cache_raid\fP
+\fBlvconvert\fP \fB--type\fP \fBthin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_thin_cache_raid_error_zero\fP
.br
.RS 4
.ad l
@@ -803,7 +803,7 @@ Add a cache to an LV, using a specified cache device.
Convert LV to type thin-pool.
.br
.P
-\fBlvconvert\fP \fB--type\fP \fBthin-pool\fP \fILV\fP\fI_linear_striped_cache_raid\fP
+\fBlvconvert\fP \fB--type\fP \fBthin-pool\fP \fILV\fP\fI_linear_striped_cache_raid_error_zero\fP
.br
.RS 4
.ad l
@@ -1899,7 +1899,7 @@ Convert LV to a thin LV, using the original LV as an external origin
(infers --type thin).
.br
.P
-\fBlvconvert\fP \fB-T\fP|\fB--thin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_thin_cache_raid\fP
+\fBlvconvert\fP \fB-T\fP|\fB--thin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_thin_cache_raid_error_zero\fP
.br
.RS 4
.ad l
diff --git a/man/lvmdevices.8_pregen b/man/lvmdevices.8_pregen
new file mode 100644
index 000000000..2922449bf
--- /dev/null
+++ b/man/lvmdevices.8_pregen
@@ -0,0 +1,553 @@
+.TH LVMDEVICES 8 "LVM TOOLS #VERSION#" "Red Hat, Inc."
+.SH NAME
+lvmdevices - Manage the devices file
+.
+.SH SYNOPSIS
+\fBlvmdevices\fP \fIoption_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+.ad l
+ \fB--adddev\fP \fIPV\fP
+.ad b
+.br
+.ad l
+ \fB--addpvid\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--check\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--deldev\fP \fIPV\fP
+.ad b
+.br
+.ad l
+ \fB--delpvid\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--devices\fP \fIPV\fP
+.ad b
+.br
+.ad l
+ \fB--devicesfile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB--lockopt\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB--nolocking\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB--update\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+.SH DESCRIPTION
+The LVM devices file lists devices that lvm can use. The default file is
+/etc/lvm/devices/system.devices, and the lvmdevices(8) command is used to
+add or remove device entries. If the file does not exist, or if lvm.conf
+includes use_devicesfile=0, then lvm will not use a devices file.
+
+To use a device with lvm, add it to the devices file with the command
+lvmdevices --adddev, and to prevent lvm from seeing or using a device,
+remove it from the devices file with lvmdevices --deldev. The
+vgimportdevices(8) command adds all PVs from a VG to the devices file,
+and updates the VG metadata to include device IDs of the PVs.
+
+Commands adding new devices to the devices file necessarily look outside
+the existing devices file to find the devices to add. pvcreate, vgcreate,
+and vgextend also look outside the devices file to create new PVs and add
+them to the devices file.
+
+LVM records devices in the devices file using hardware-specific IDs, such
+as the WWID, and attempts to use subsystem-specific IDs for virtual device
+types (which also aim to be as unique and stable as possible.)
+These device IDs are also written in the VG metadata. When no hardware or
+virtual ID is available, lvm falls back using the unstable device name as
+the device ID. When devnames are used, lvm performs extra scanning to
+find devices if their devname changes, e.g. after reboot.
+
+When proper device IDs are used, an lvm command will not look at devices
+outside the devices file, but when devnames are used as a fallback, lvm
+will scan devices outside the devices file to locate PVs on renamed
+devices. A config setting search_for_devnames can be used to control the
+scanning for renamed devname entries.
+
+Related to the devices file, the new command option --devices <devnames>
+allows a list of devices to be specified for the command to use,
+overriding the devices file. The listed devices act as a sort of devices
+file in terms of limiting which devices lvm will see and use. Devices
+that are not listed will appear to be missing to the lvm command.
+
+Multiple devices files can be kept in /etc/lvm/devices, which allows lvm
+to be used with different sets of devices, e.g. system devices do not need
+to be exposed to a specific application, and the application can use lvm on
+its own devices that are not exposed to the system. The option
+--devicesfile <filename> is used to select the devices file to use with the
+command. Without the option set, the default system devices file is used.
+
+Setting --devicesfile "" causes lvm to not use a devices file.
+
+With no devices file, lvm will use any device on the system, and applies
+the filter to limit the full set of system devices. With a devices file,
+the regex filter is not used, and the filter settings in lvm.conf or the
+command line are ignored. The vgimportdevices command is one exception
+which does apply the regex filter when looking for a VG to import.
+
+If a devices file exists, lvm will use it, even if it's empty. An empty
+devices file means lvm will see no devices.
+
+If the system devices file does not yet exist, the pvcreate or vgcreate
+commands will create it if they see no existing VGs on the system.
+lvmdevices --addev and vgimportdevices will always create a new devices file
+if it does not yet exist.
+
+It is recommended to use lvm commands to make changes to the devices file to
+ensure proper updates.
+
+.SH USAGE
+Print devices in the devices file.
+.br
+.P
+\fBlvmdevices\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Check the devices file and report incorrect values.
+.br
+.P
+\fBlvmdevices\fP \fB--check\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Update the devices file to fix incorrect values.
+.br
+.P
+\fBlvmdevices\fP \fB--update\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Add a device to the devices file.
+.br
+.P
+\fBlvmdevices\fP \fB--adddev\fP \fIPV\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Remove a device from the devices file.
+.br
+.P
+\fBlvmdevices\fP \fB--deldev\fP \fIPV\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Find the device with the given PVID and add it to the devices file.
+.br
+.P
+\fBlvmdevices\fP \fB--addpvid\fP \fIString\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Remove the devices file entry for the given PVID.
+.br
+.P
+\fBlvmdevices\fP \fB--delpvid\fP \fIString\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Common options for command:
+.
+.RS 4
+.RE
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--devices\fP \fIPV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--devicesfile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--lockopt\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+.RE
+.SH OPTIONS
+.HP
+.ad l
+\fB--adddev\fP \fIPV\fP
+.br
+Add a device to the devices file.
+.ad b
+.HP
+.ad l
+\fB--addpvid\fP \fIString\fP
+.br
+Find a device with the PVID and add the device to the devices file.
+.ad b
+.HP
+.ad l
+\fB--check\fP
+.br
+Check the content of the devices file.
+.ad b
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+.HP
+.ad l
+\fB--deldev\fP \fIPV\fP
+.br
+Remove a device from the devices file.
+.ad b
+.HP
+.ad l
+\fB--delpvid\fP \fIString\fP
+.br
+Remove a device with the PVID from the devices file.
+.ad b
+.HP
+.ad l
+\fB--devices\fP \fIPV\fP
+.br
+Devices that the command can use. This option can be repeated
+or accepts a comma separated list of devices. This overrides
+the devices file.
+.ad b
+.HP
+.ad l
+\fB--devicesfile\fP \fIString\fP
+.br
+A file listing devices that LVM should use.
+The file must exist in /etc/lvm/devices/ and is managed
+with the lvmdevices(8) command.
+This overrides the lvm.conf devices/devicesfile and
+devices/use_devicesfile settings.
+.ad b
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+.HP
+.ad l
+\fB--lockopt\fP \fIString\fP
+.br
+Used to pass options for special cases to lvmlockd.
+See \fBlvmlockd\fP(8) for more information.
+.ad b
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer 'no'.
+.ad b
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+.HP
+.ad l
+\fB--update\fP
+.br
+Update the content of the devices file.
+.ad b
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is KiB,
+m|M is MiB, g|G is GiB, t|T is TiB, p|P is PiB, e|E is EiB.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+.BR lvmdevices (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgimportdevices (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm-fullreport (8)
+.BR lvm-lvpoll (8)
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
diff --git a/man/vgimportdevices.8_pregen b/man/vgimportdevices.8_pregen
new file mode 100644
index 000000000..b08c205cd
--- /dev/null
+++ b/man/vgimportdevices.8_pregen
@@ -0,0 +1,383 @@
+.TH VGIMPORTDEVICES 8 "LVM TOOLS #VERSION#" "Red Hat, Inc."
+.SH NAME
+vgimportdevices - Add devices for a VG to the devices file.
+.
+.SH SYNOPSIS
+\fBvgimportdevices\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.SH DESCRIPTION
+vgimportdevices adds PVs from a VG to the devices file. This is similar
+to using using lvmdevices --adddev to add each PV to the devices file
+individually. vgimportdevices will also update the VG metadata to include
+the device IDs of each PV. vgimportdevices will create a new devices file
+if none exists.
+
+When a devices file is used, the regex filter is ignored, except in the case
+of vgimportdevices which will apply the regex filter when looking for the VGs
+to import to the devices file. Use vgimportdevices -a to import all VGs on a
+system to the devices file.
+
+.SH USAGE
+Add devices from specific VGs to the devices file.
+.br
+.P
+\fBvgimportdevices\fP \fIVG\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+Add devices from all accessible VGs to the devices file.
+.br
+.P
+\fBvgimportdevices\fP \fB-a\fP|\fB--all\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.RE
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--devices\fP \fIPV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--devicesfile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--lockopt\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+.RE
+.SH OPTIONS
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+.ad b
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+.HP
+.ad l
+\fB--devices\fP \fIPV\fP
+.br
+Devices that the command can use. This option can be repeated
+or accepts a comma separated list of devices. This overrides
+the devices file.
+.ad b
+.HP
+.ad l
+\fB--devicesfile\fP \fIString\fP
+.br
+A file listing devices that LVM should use.
+The file must exist in /etc/lvm/devices/ and is managed
+with the lvmdevices(8) command.
+This overrides the lvm.conf devices/devicesfile and
+devices/use_devicesfile settings.
+.ad b
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See \fBlvmsystemid\fP(7) for more information about foreign VGs.
+.ad b
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+.HP
+.ad l
+\fB--lockopt\fP \fIString\fP
+.br
+Used to pass options for special cases to lvmlockd.
+See \fBlvmlockd\fP(8) for more information.
+.ad b
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer 'no'.
+.ad b
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is KiB,
+m|M is MiB, g|G is GiB, t|T is TiB, p|P is PiB, e|E is EiB.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+.BR lvmdevices (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgimportdevices (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm-fullreport (8)
+.BR lvm-lvpoll (8)
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
3 years, 1 month