1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/lib/metadata
Heinz Mauelshagen 8e9d5d12ae pvmove: prohibit non-resilient collocation of RAID SubLVs
'pvmove -n name pv1 pv2' allows to collocate multiple RAID SubLVs
on pv2 (e.g. results in collocated raidlv_rimage_0 and raidlv_rimage_1),
thus causing loss of resilence and/or performance of the RaidLV.

Fix this pvmove flaw leading to potential data loss in case of PV failure
by preventing any SubLVs from collocation on any PVs of the RaidLV.
Still allow to collocate any DataLVs of a RaidLV with their sibling MetaLVs
and vice-versa though (e.g. raidlv_rmeta_0 on pv1 may still be moved to pv2
already holding raidlv_rimage_0).

Because access to the top-level RaidLV name is needed,
promote local _top_level_lv_name() from raid_manip.c
to global top_level_lv_name().

- resolves rhbz1202497
2016-08-15 18:22:32 +02:00
..
cache_manip.c debug: use display_lvname 2016-05-27 15:47:24 +02:00
lv_alloc.h doc: change fsf address 2016-01-21 12:11:37 +01:00
lv_manip.c raid: Move two functions. 2016-08-06 23:29:27 +01:00
lv.c macros: Add lv_is_not_synced. 2016-07-14 14:21:01 +01:00
lv.h lv: introduce lvseg_percent_with_info_and_seg_status 2016-05-27 15:47:24 +02:00
merge.c lvcreate/lvconvert: fix validation of maximum mirrors/stripes 2016-08-12 19:14:28 +02:00
metadata-exported.h pvmove: prohibit non-resilient collocation of RAID SubLVs 2016-08-15 18:22:32 +02:00
metadata.c metadata: fix automatic updates of PV extension headers to newest version 2016-07-26 16:22:55 +02:00
metadata.h lvconvert: Conversions between striped and raid0. 2016-06-28 23:44:15 +01:00
mirror.c metadata: also look at historical LVs when checking LV name availability 2016-03-03 13:50:59 +01:00
pool_manip.c metadata: also look at historical LVs when checking LV name availability 2016-03-03 13:50:59 +01:00
pv_alloc.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pv_manip.c lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00
pv_map.c doc: change fsf address 2016-01-21 12:11:37 +01:00
pv_map.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pv.c lvmcache: add optional dev arg to lvmcache_info_from_pvid 2016-06-07 15:15:47 -05:00
pv.h pv: add is_used_pv fn 2016-02-15 12:44:46 +01:00
raid_manip.c pvmove: prohibit non-resilient collocation of RAID SubLVs 2016-08-15 18:22:32 +02:00
replicator_manip.c lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00
segtype.c segtypes: Further segtype macros. 2016-08-05 14:00:40 +01:00
segtype.h segtypes: Further segtype macros. 2016-08-05 14:00:40 +01:00
snapshot_manip.c snapshot: check merging_cow is cow 2016-05-27 15:47:24 +02:00
takeover_matrix.h raid0: Add raid0_meta segment type. 2016-07-01 22:20:54 +01:00
thin_manip.c macros: Use is_power_of_2. 2016-06-30 17:59:44 +01:00
vg.c macros: Use is_power_of_2. 2016-06-30 17:59:44 +01:00
vg.h lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00