1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/lib/metadata
Heinz Mauelshagen 74906dad60 raid: fix (de)activation of RaidLVs with visible SubLVs
There's a small window during creation of a new RaidLV when
rmeta SubLVs are made visible to wipe them in order to prevent
erroneous discovery of stale RAID metadata.  In case a crash
prevents the SubLVs from being committed hidden after such
wiping, the RaidLV can still be activated with the SubLVs visible.
During deactivation though, a deadlock occurs because the visible
SubLVs are deactivated before the RaidLV.

The patch adds _check_raid_sublvs to the raid validation in merge.c,
an activation check to activate.c (paranoid, because the merge.c check
will prevent activation in case of visible SubLVs) and shares the
existing wiping function _clear_lvs in raid_manip.c moved to lv_manip.c
and renamed to activate_and_wipe_lvlist to remove code duplication.
Whilst on it, introduce activate_and_wipe_lv to share with
(lvconvert|lvchange).c.

Resolves: rhbz1633167
2018-12-12 16:26:55 +01:00
..
cache_manip.c cache: drop metadata_format validation 2018-08-07 17:57:00 +02:00
lv_alloc.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lv_manip.c raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
lv.c vdo: data percentage 2018-07-09 15:28:35 +02:00
lv.h Remove unused clvm variations for active LVs 2018-06-07 16:17:04 +01:00
merge.c raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
metadata-exported.h raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
metadata.c cov: remove unused assigns 2018-12-04 14:33:36 -06:00
metadata.h Remove lvmetad 2018-07-11 11:26:42 -05:00
mirror.c lvcreate/lvconvert: prohibit creation of/conversion to mirrored mirror logs 2018-12-12 16:26:42 +01:00
pool_manip.c Remove unused clvm variations for active LVs 2018-06-07 16:17:04 +01:00
pv_alloc.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pv_manip.c pvresize: add missing return 2018-06-08 14:36:56 +02:00
pv_map.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
pv_map.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
pv.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
pv.h device_mapper: rename libdevmapper.h -> all.h 2018-06-08 12:31:45 +01:00
raid_manip.c raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
segtype.c segtype: add linear 2018-06-05 16:23:18 +02:00
segtype.h vdo: introduce segment types and manip functions 2018-07-09 15:28:35 +02:00
snapshot_manip.c Remove unused clvm variations for active LVs 2018-06-07 16:17:04 +01:00
takeover_matrix.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
thin_manip.c Remove unused clvm variations for active LVs 2018-06-07 16:17:04 +01:00
vdo_manip.c cov: drop uneeded header files 2018-10-15 17:49:44 +02:00
vg.c cov: drop uneeded header files 2018-10-15 17:49:44 +02:00
vg.h Remove lvmetad 2018-07-11 11:26:42 -05:00