[lvm-devel] master - pvscan: ignore online for unused PV

David Teigland teigland at sourceware.org
Tue Mar 5 16:00:52 UTC 2019


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a0c848d4e4a9b53fa1f9cc7a8330fea6b23c07a8
Commit:        a0c848d4e4a9b53fa1f9cc7a8330fea6b23c07a8
Parent:        07483cc165e210a23627b4b6d5c89f9008c9e950
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Mon Mar 4 14:25:53 2019 -0600
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Mon Mar 4 14:25:53 2019 -0600

pvscan: ignore online for unused PV

If an unused PV comes online, ignore it from
pvscan --cache.
---
 tools/pvscan.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/tools/pvscan.c b/tools/pvscan.c
index 389aafa..c484531 100644
--- a/tools/pvscan.c
+++ b/tools/pvscan.c
@@ -644,6 +644,8 @@ static int _online_pvscan_one(struct cmd_context *cmd, struct device *dev,
 	const struct format_type *fmt;
 	/* Create a dummy instance. */
 	struct format_instance_ctx fic = { .type = 0 };
+	uint32_t ext_version;
+	uint32_t ext_flags;
 	int ret = 0;
 
 	log_debug("pvscan metadata from dev %s", dev_name(dev));
@@ -667,6 +669,14 @@ static int _online_pvscan_one(struct cmd_context *cmd, struct device *dev,
 		return 1;
 	}
 
+	ext_version = lvmcache_ext_version(info);
+	ext_flags = lvmcache_ext_flags(info);
+
+	if ((ext_version >= 2) && !(ext_flags & PV_EXT_USED)) {
+		log_print("pvscan[%d] PV %s not used.", getpid(), dev_name(dev));
+		return 1;
+	}
+
 	fmt = lvmcache_fmt(info);
 
 	baton.cmd = cmd;




More information about the lvm-devel mailing list