[lvm-devel] master - scan: md metadata version 0.90 is at the end of disk

David Teigland teigland at sourceware.org
Thu Nov 29 18:36:28 UTC 2018


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=cb04b84c79f10e6b3f1b376cf7611d0afed26c39
Commit:        cb04b84c79f10e6b3f1b376cf7611d0afed26c39
Parent:        cd0fb0846db0d0bc04469914f6866a04af377548
Author:        Peter Rajnoha <prajnoha at redhat.com>
AuthorDate:    Thu Nov 29 12:35:54 2018 -0600
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Thu Nov 29 12:35:54 2018 -0600

scan: md metadata version 0.90 is at the end of disk

commit de28637
  scan: use full md filter when md 1.0 devices are present

missed the fact that md superblock version 0.90 also puts
metadata at the end of the device, so the full md filter
needs to be used when either 0.90 or 1.0 is present.
---
 lib/device/dev-md.c     |    2 +-
 lib/filters/filter-md.c |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c
index ac99f42..9c626dd 100644
--- a/lib/device/dev-md.c
+++ b/lib/device/dev-md.c
@@ -422,7 +422,7 @@ int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev)
 	log_very_verbose("Device %s %s is %s.",
 			 dev_name(dev), attribute, version_string);
 
-	if (!strcmp(version_string, "1.0"))
+	if (!strcmp(version_string, "1.0") || !strcmp(version_string, "0.90"))
 		return 1;
 	return 0;
 }
diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c
index 2214986..0275923 100644
--- a/lib/filters/filter-md.c
+++ b/lib/filters/filter-md.c
@@ -46,7 +46,7 @@
  * 3. use udev to detect components
  *
  * mode 1 will not detect and exclude components of md devices
- * that use superblock version 1.0 which is at the end of the device.
+ * that use superblock version 0.9 or 1.0 which is at the end of the device.
  *
  * mode 2 will detect these, but mode 2 doubles the i/o done by label
  * scan, since there's a read at both the start and end of every device.
@@ -59,11 +59,11 @@
  *
  * - the command is pvcreate/vgcreate/vgextend, which format new
  *   devices, and if the user ran these commands on a component
- *   device of an md device 1.0, then it would cause problems.
+ *   device of an md device 0.9 or 1.0, then it would cause problems.
  *   FIXME: this would only really need to scan the end of the
  *   devices being formatted, not all devices.
  *
- * - it sees an md device on the system using version 1.0.
+ * - it sees an md device on the system using version 0.9 or 1.0.
  *   The point of this is just to avoid displaying md components
  *   from the 'pvs' command.
  *   FIXME: the cost (double i/o) may not be worth the benefit




More information about the lvm-devel mailing list