1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/libdm
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
..
datastruct libdm: add min_num_bits to dm_bitset_parse_list() 2016-12-13 21:02:18 +00:00
ioctl debug: add space before uuid 2017-02-05 17:55:37 +01:00
misc libdm: use dm_log_with_errno always 2016-11-03 17:49:07 +01:00
mm gcc: cleanup some sign warnings 2016-02-23 12:25:25 +01:00
regex cleanup: hide gcc warning 2016-11-23 17:55:03 +01:00
.exported_symbols libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.Base hash: change name of new lookup function 2015-11-17 11:59:44 -06:00
.exported_symbols.DM_1_02_97 libdm: new dm_task_get_info with internal_suspend 2015-05-15 16:48:22 +02:00
.exported_symbols.DM_1_02_98 libdm: Add dm_task_get_errno to return ioctl errno. 2015-05-26 15:13:49 +01:00
.exported_symbols.DM_1_02_99 libdm: add dm_tree_node_set_thin_pool_read_only 2015-06-18 15:15:39 +02:00
.exported_symbols.DM_1_02_100 config: add support for config value formatting flags 2015-06-24 11:13:37 +02:00
.exported_symbols.DM_1_02_101 report: add infrastructure to recognize fuzzy reserved names and returning dynamic reserved values 2015-07-03 10:47:09 +02:00
.exported_symbols.DM_1_02_103 libdm: Use wrappers for all malloc functions. 2015-07-22 23:11:48 +01:00
.exported_symbols.DM_1_02_104 libdm: Drop ignored duplicate export designation. 2015-08-26 17:30:36 +01:00
.exported_symbols.DM_1_02_105 pre-release 2015-08-17 17:20:14 +01:00
.exported_symbols.DM_1_02_106 libdm: add per region precise timestamps property methods 2015-08-24 20:03:21 +01:00
.exported_symbols.DM_1_02_107 libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
.exported_symbols.DM_1_02_110 libdm: dm_tree_node_size_changed recognizes reduction 2015-10-25 21:05:15 +01:00
.exported_symbols.DM_1_02_113 libdm: introduce dm_get_status_mirror 2015-12-01 13:00:43 +01:00
.exported_symbols.DM_1_02_124 libdm: Add dm_udev_wait_immediate. 2016-04-28 00:54:27 +01:00
.exported_symbols.DM_1_02_128 libdm: report: add dm_report_set_selection 2016-06-20 11:33:43 +02:00
.exported_symbols.DM_1_02_129 libdm: add stats group and region iterators and properties 2016-07-05 19:53:16 +01:00
.exported_symbols.DM_1_02_131 libdm: add dm_stats_create_regions_from_fd() 2016-07-08 14:34:41 +01:00
.exported_symbols.DM_1_02_133 libdm: report: add dm_report_group_output_and_pop_all 2016-08-09 18:24:45 +02:00
.exported_symbols.DM_1_02_135 libdm: add dm_config_parse_without_dup_node_check 2016-09-21 18:15:18 +02:00
.exported_symbols.DM_1_02_138 libdm: add dm_stats_update_regions_from_fd() 2017-01-25 16:15:21 +00:00
libdevmapper.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
libdevmapper.pc.in libdm: pkgconfig: fix devmapper.pc to not reference nonexistent rt.pc file 2015-09-03 09:28:42 +02:00
libdm-common.c libdm: validate vsnprintf 2016-12-11 23:24:17 +01:00
libdm-common.h lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
libdm-config.c libdm: add dm_config_parse_without_dup_node_check 2016-09-21 18:15:18 +02:00
libdm-deptree.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
libdm-file.c libdm: do not issue 'Failed to create directory' message for failure in dm_create_dir 2016-06-29 15:58:18 +02:00
libdm-report.c cleanup: use matching signed number comparation 2017-02-13 10:06:19 +01:00
libdm-stats.c libdm: move code for _stats_resize_group 2017-02-14 10:24:56 +01:00
libdm-string.c cleanup: use matching const type 2017-02-13 10:06:18 +01:00
libdm-targets.c lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
libdm-timestamp.c doc: change fsf address 2016-01-21 12:11:37 +01:00
Makefile.in doc: change fsf address 2016-01-21 12:11:37 +01:00