diff options
author | Alasdair G Kergon <agk@redhat.com> | 2012-06-29 21:22:09 +0100 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2012-06-29 21:22:09 +0100 |
commit | 1d0a2b919fe173e3a25e5f19d535588bb5b214e2 (patch) | |
tree | 6407250047523c798e5a0b8c9292cf5e03bf1173 /tools | |
parent | d84e1ae5f2de569db06293aac371ce7dde1cfd62 (diff) | |
download | lvm2-1d0a2b919fe173e3a25e5f19d535588bb5b214e2.tar.gz lvm2-1d0a2b919fe173e3a25e5f19d535588bb5b214e2.tar.xz lvm2-1d0a2b919fe173e3a25e5f19d535588bb5b214e2.zip |
toollib: fix ignored_mdas process_each_pv rescan
In process_each_pv() if we haven't yet scanned and the PV appears
to be an orphan, we must scan the other PVs looking for mdas that
reference it to find out what VG it is in.
1. If the PV has no mdas, we must scan.
2. If the PV has an mda that is not ignored we do not need to scan.
3. If the PV has an mda that is ignored, we do need to scan.
This patch fixes case 3.
> pvs -o +mda_count,vg_mda_count /dev/loop[0123]
PV VG Fmt Attr PSize PFree #PMda #VMda
/dev/loop0 vg3 lvm2 a- 96.00m 96.00m 0 1
/dev/loop1 vg3 lvm2 a- 96.00m 96.00m 1 1
/dev/loop2 vg2 lvm2 a- 96.00m 96.00m 1 2
/dev/loop3 vg2 lvm2 a- 28.00m 28.00m 1 2
Before:
> pvs /dev/loop2 /dev/loop3 /dev/loop0 /dev/loop1 --unbuffered
PV VG Fmt Attr PSize PFree
/dev/loop2 lvm2 a-- 100.00m 100.00m
/dev/loop3 vg2 lvm2 a-- 28.00m 28.00m
/dev/loop0 lvm2 a-- 100.00m 100.00m
/dev/loop1 vg3 lvm2 a-- 96.00m 96.00m
After:
> pvs /dev/loop2 /dev/loop3 /dev/loop0 /dev/loop1 --unbuffered
PV VG Fmt Attr PSize PFree
/dev/loop2 vg2 lvm2 a-- 96.00m 96.00m
/dev/loop3 vg2 lvm2 a-- 28.00m 28.00m
/dev/loop0 vg3 lvm2 a-- 96.00m 96.00m
/dev/loop1 vg3 lvm2 a-- 96.00m 96.00m
Diffstat (limited to 'tools')
-rw-r--r-- | tools/toollib.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/tools/toollib.c b/tools/toollib.c index 142de558..0f6810b6 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -770,8 +770,7 @@ int process_each_pv(struct cmd_context *cmd, int argc, char **argv, * PV on the system. */ if (!scanned && is_orphan(pv) && - !dm_list_size(&pv->fid->metadata_areas_in_use) && - !dm_list_size(&pv->fid->metadata_areas_ignored)) { + !dm_list_size(&pv->fid->metadata_areas_in_use)) { if (!scan_label_only && !scan_vgs_for_pvs(cmd, 1)) { stack; |