mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
aee27dc7ba
For reporting commands (pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplay) we do not need to repeat the label scan of devices in vg_read if they all had matching metadata in the initial label scan. The data read by label scan can just be reused for the vg_read. This cuts the amount of device i/o in half, from two reads of each device to one. We have to be careful to avoid repairing the VG if we've skipped rescanning. (The VG repair code is very poor, and will be redone soon.)
34 lines
1003 B
Bash
34 lines
1003 B
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (C) 2013 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions
|
|
# of the GNU General Public License v.2.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
SKIP_WITH_LVMLOCKD=1
|
|
SKIP_WITH_LVMPOLLD=1
|
|
|
|
. lib/inittest
|
|
|
|
aux prepare_devs 3
|
|
|
|
vgcreate --metadatasize 128k $vg1 "$dev1" "$dev2" "$dev3"
|
|
|
|
vgreduce $vg1 "$dev1"
|
|
dd if="$dev1" of=badmda bs=256K count=1
|
|
vgextend $vg1 "$dev1"
|
|
|
|
dd if=badmda of="$dev1" bs=256K count=1
|
|
|
|
# the vg_read in vgck (and other commands) will repair the metadata
|
|
vgck $vg1
|
|
|
|
# dev1 is part of vg1 (as witnessed by metadata on dev2 and dev3), but its mda
|
|
# was corrupt (written over by a backup from time dev1 was an orphan)
|
|
check pv_field "$dev1" vg_name $vg1
|