1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/lib
Heinz Mauelshagen de78e8eae7 lvconvert: position dedicated parity device in raid4 conversions porperly
On conversions between striped/raid0* and raid4, the kernel expects
the dedicated raid4 parity SubLVs in the first segment area rather than
in the last it's been allocated to, thus the data mapping ain't proper.

Enhance lvconvert (lib/metadata/raid_manip.c) to shift the dedicated
parity SubLVs on conversions from striped/raid0* to raid4 and vice-versa.

In case of raid0_meta -> raid4 where the MD raid0 personality already has
stored RAID array device positions in the superblocks, the MetaLVs have to
be cleared so that the kernel doesn't fail validating the array positions
after lvm has shifted them up by one.

Add more tests to lvconvert-raid-takeover.sh including one to check for
mapping flaws by converting a created raid4 with filesystem -> striped
and fsck it.

Whilst on it:
- add missing direct striped -> raid4 conversion to the takeover array
  to avoid an intermim conversion from striped -> raid0*
- clean up the takeover array
- allow lvconvert to actually call lv_raid_convert() on all takeover requests
  in order to check parameters and display messages provided by takeover
  functions rather than just "...not supported" from within lvconvert
- fix a typo

Resolves: rhbz1386148
2016-10-21 19:00:31 +02:00
..
activate snapshots: Fix monitoring to use cow not internal LV. 2016-09-20 02:30:58 +01:00
cache cleanup: drop assign before use 2016-10-03 17:49:55 +02:00
cache_segtype lvchange: allow change of cache mode 2016-05-19 18:40:14 +02:00
commands toolcontext: read all configuration sources when checking config values in lvm2-activation-generator through lighweight toolcontext handler 2016-09-23 14:57:44 +02:00
config config: parse config tree without dup node checking if it's metadata tree 2016-09-21 18:16:05 +02:00
datastruct datastruct: Add str_list_wipe. 2016-04-29 19:47:15 +01:00
device dev-type: check for DEVLINKS udev db variable existence if udev_device_get_is_initialized fn is not present 2016-09-06 13:21:29 +02:00
display cleanup: warns from older gcc 2016-07-01 00:44:48 +02:00
error activate: Use macros for target and module names. 2016-03-22 17:46:15 +00:00
filters cleanup: clean gcc6 minor/major types warnings 2016-08-29 20:51:16 +02:00
format1 redefine pvcreate structs 2016-02-25 09:14:10 -06:00
format_pool macros: Use is_power_of_2. 2016-06-30 17:59:44 +01:00
format_text config: use config_tree_from_string_without_dup_node_check throughout code to construct metadata trees 2016-09-21 18:18:15 +02:00
freeseg doc: change fsf address 2016-01-21 12:11:37 +01:00
label lvmcache: add optional dev arg to lvmcache_info_from_pvid 2016-06-07 15:15:47 -05:00
locking lvmlockd: improve error message about missing global lock 2016-07-25 14:49:01 -05:00
log shell: also collect last command's return code for subsequent 'lastlog' invocation 2016-08-09 18:24:45 +02:00
lvmpolld doc: change fsf address 2016-01-21 12:11:37 +01:00
metadata lvconvert: position dedicated parity device in raid4 conversions porperly 2016-10-21 19:00:31 +02:00
mirror activate: Use macros for target and module names. 2016-03-22 17:46:15 +00:00
misc lib: Move lcm and gcd to lib/misc for wider use. 2016-08-18 14:06:13 +01:00
mm cleanup: compile fixes for --disable-devmapper 2016-06-03 12:46:43 +02:00
notify notify: Fix hang with lvm shell & --enable-notify-dbus 2016-08-12 14:36:43 -05:00
properties doc: change fsf address 2016-01-21 12:11:37 +01:00
raid raid: Don't monitor raid0 or raid0_meta LVs. 2016-08-20 02:14:33 +01:00
replicator doc: change fsf address 2016-01-21 12:11:37 +01:00
report lvm2app: fix cache percantage reporting 2016-09-09 15:03:28 +02:00
snapshot activate: Use macros for target and module names. 2016-03-22 17:46:15 +00:00
striped striped: Add precise macros for original segtype. 2016-08-04 01:24:39 +01:00
thin macros: Use is_power_of_2. 2016-06-30 17:59:44 +01:00
unknown doc: change fsf address 2016-01-21 12:11:37 +01:00
uuid cleanup :drop unneeded header file 2016-10-03 17:49:56 +02:00
zero activate: Use macros for target and module names. 2016-03-22 17:46:15 +00:00
Makefile.in lib: Move lcm and gcd to lib/misc for wider use. 2016-08-18 14:06:13 +01:00