1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/lib/metadata
Heinz Mauelshagen e2354ea344 lvconvert: add infrastructure for RaidLV reshaping support
In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces infrastructure prerequisites to be used
by raid_manip.c extensions in followup patches.

This base is needed for allocation of out-of-place
reshape space required by the MD raid personalities to
avoid writing over data in-place when reading off the
current RAID layout or number of legs and writing out
the new layout or to a different number of legs
(i.e. restripe)

Changes:
- add members reshape_len to 'struct lv_segment' to store
  out-of-place reshape length per component rimage
- add member data_copies to struct lv_segment
  to support more than 2 raid10 data copies
- make alloc_lv_segment() aware of both reshape_len and data_copies
- adjust all alloc_lv_segment() callers to the new API
- add functions to retrieve the current data offset (needed for
  out-of-place reshaping space allocation) and the devices count
  from the kernel
- make libdm deptree code aware of reshape_len
- add LV flags for disk add/remove reshaping
- support import/export of the new 'struct lv_segment' members
- enhance lv_extend/_lv_reduce to cope with reshape_len
- add seg_is_*/segtype_is_* macros related to reshaping
- add target version check for reshaping
- grow rebuilds/writemostly bitmaps to 246 bit to support kernel maximal
- enhance libdm deptree code to support data_offset (out-of-place reshaping)
  and delta_disk (legs add/remove reshaping) target arguments

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
2017-02-24 05:20:58 +01:00
..
cache_manip.c cleanup: more use of lvseg_name 2017-01-03 14:55:16 +01:00
lv_alloc.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
lv_manip.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
lv.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
lv.h lv: introduce lvseg_percent_with_info_and_seg_status 2016-05-27 15:47:24 +02:00
merge.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
metadata-exported.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
metadata.c lvmlockd: test mode doesn't work 2017-02-13 08:20:10 -06:00
metadata.h thin: enforce there is some free space in thin pool metadata 2016-09-19 14:00:56 +02:00
mirror.c cleanup: use NAME_LEN stack buffer 2016-12-11 23:24:19 +01:00
pool_manip.c debug: better verbose message 2016-08-29 20:51:16 +02: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 lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
replicator_manip.c lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00
segtype.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
segtype.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
snapshot_manip.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
takeover_matrix.h lvconvert: add conversion from/to raid10 2017-02-10 19:13:02 +01:00
thin_manip.c commands: new method for defining commands 2017-02-13 08:20:10 -06: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