1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

vgname_from_mda now tries to parse for vgname even

if rlocn not defined (there is no metadata area).

In most cases it fails in validate_name(),
unfortunately there are situatuions, when
validate_name is ok and later code fails with
checksum error.

Reproducer:

# dd if=/dev/zero of=/dev/loop0

# pvcreate --metadatasize 637k /dev/loop0
  Physical volume "/dev/loop0" successfully created

# pvs /dev/loop0
  /dev/loop0: Checksum error
      PV         VG   Fmt  Attr PSize PFree
        /dev/loop0      lvm2 --   1.00M 1.00M

Signed-off-by: Milan Broz <mbroz@redhat.com>

-
This commit is contained in:
Milan Broz 2009-03-03 16:35:32 +00:00
parent 3361724033
commit c3b50730b8
2 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.45 - 3rd March 2009
================================
Avoid scanning empty metadata areas for VG names.
Attempt proper clean up in child before executing new binary in exec_cmd().
Do not scan devices if reporting only attributes from PV label.
Use pkgconfig to obtain corosync library details during configuration.

View File

@ -1061,6 +1061,12 @@ const char *vgname_from_mda(const struct format_type *fmt,
/* FIXME Cope with returning a list */
rlocn = mdah->raw_locns;
/*
* If no valid offset, do not try to search for vgname
*/
if (!rlocn->offset)
goto out;
/* Do quick check for a vgname */
if (!dev_read(dev_area->dev, dev_area->start + rlocn->offset,
NAME_LEN, buf))