[lvm-devel] master - metadata: check for PV extension version before doing any checks on PV extension flags

Peter Rajnoha prajnoha at fedoraproject.org
Mon Feb 15 12:08:40 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=e0b141510523bb09e5a784d6e1b30f106e8dbbf3
Commit:        e0b141510523bb09e5a784d6e1b30f106e8dbbf3
Parent:        d97f1c89deb9a75452059cd62ebb20cf7d2d6bfa
Author:        Peter Rajnoha <prajnoha at redhat.com>
AuthorDate:    Mon Mar 16 18:23:43 2015 +0100
Committer:     Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Mon Feb 15 12:44:46 2016 +0100

metadata: check for PV extension version before doing any checks on PV extension flags

PV header extension versions:
  0 - the original PV without any extensions
  1 - bootloader area support added
  2 - PV_EXT_USED flag support added

So do the associated checks related to PV_EXT_USED flag only if
PV header extension found is of version 2 and higher.
---
 lib/metadata/metadata.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 61084bc..172edc1 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -3348,9 +3348,21 @@ static int _check_or_repair_orphan_pv_ext(struct physical_volume *pv,
 					  struct lvmcache_info *info,
 					  struct _vg_read_orphan_baton *b)
 {
+	uint32_t ext_version = lvmcache_ext_version(info);
 	uint32_t ext_flags = lvmcache_ext_flags(info);
 	int at_least_one_mda_used;
 
+	/*
+	 * Nothing to do if PV header extension < 2:
+	 *  - version 0 is PV header without any extensions,
+	 *  - version 1 has bootloader area support only and
+	 *    we're not checking anything for that one here.
+	 */
+	if (ext_version < 2) {
+		b->consistent = 1;
+		return 1;
+	}
+
 	if (ext_flags & PV_EXT_USED) {
 		if (lvmcache_mda_count(info)) {
 			at_least_one_mda_used = 0;




More information about the lvm-devel mailing list