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

Gang He ghe at suse.com
Mon Dec 3 02:43:34 UTC 2018


Hello David,

This patch can be used to fix this problem, or not?
https://www.redhat.com/archives/linux-lvm/2018-October/msg00049.html 


Thanks
Gang


>>> On 2018/11/30 at 2:36, in message
<201811291836.wATIaSVc015670 at lists01.pubmisc.prod.ext.phx2.redhat.com>, David
Teigland <teigland at sourceware.org> wrote:
> Gitweb:        
> https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=cb04b84c79f10e6b3f1b376 
> cf7611d0afed26c39
> 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
> 
> --
> lvm-devel mailing list
> lvm-devel at redhat.com 
> https://www.redhat.com/mailman/listinfo/lvm-devel





More information about the lvm-devel mailing list