1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
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
autoconf autoconf: Fix py-compile permissions 2016-02-18 01:05:05 +00:00
conf config: update doc 2017-02-13 10:06:07 +01:00
coverity doc: change fsf address 2016-01-21 12:11:37 +01:00
daemons dmeventd: unify error handling 2017-02-14 00:03:34 +01:00
doc generate man pages 2017-02-13 10:31:23 -06:00
include configure: check for __builtin_clz() 2016-12-13 20:38:40 +00:00
lib lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
libdaemon mem: add extra mem pages for pthread stack 2017-02-11 18:23:15 +01:00
libdm lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
liblvm lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00
man man lvm: update see also list 2017-02-21 12:27:51 -06:00
nix lockd: Clean up spec 2015-07-04 14:36:57 +02:00
old-tests doc: change fsf address 2016-01-21 12:11:37 +01:00
po doc: change fsf address 2016-01-21 12:11:37 +01:00
python python: move lvm_init 2016-05-16 14:36:55 -05:00
report-generators doc: change fsf address 2016-01-21 12:11:37 +01:00
reports [REPORT-GENERATORS] cut down stylsheet.css to what we actually use 2010-07-21 10:00:38 +00:00
scripts blkdeactivate: also unmount mount point on top of MD device if using blkdeactivate -u 2017-01-06 11:16:07 +01:00
spec spec: move dmeventd -R from post to posttrans script for device-mapper-event package 2016-10-12 13:52:13 +02:00
test lvchange: reject writemostly/writebehind on raid1 during resync 2017-02-23 15:09:29 +01:00
tools lvconvert: add infrastructure for RaidLV reshaping support 2017-02-24 05:20:58 +01:00
udev makefiles: use configure vars 2017-02-14 10:24:56 +01:00
unit-tests doc: change fsf address 2016-01-21 12:11:37 +01:00
.gitignore lvmdbus: Add new daemon. 2016-02-17 23:53:35 +00:00
acinclude.m4 configure: just move new macro to right file 2016-12-13 22:49:59 +01:00
aclocal.m4 configure: just move new macro to right file 2016-12-13 22:49:59 +01:00
configure configure: update 2017-02-14 00:05:04 +01:00
configure.in generate man pages 2017-02-13 10:31:23 -06:00
COPYING doc: change fsf address 2016-01-21 12:11:37 +01:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in makefiles: use configure vars 2017-02-14 10:24:56 +01:00
Makefile.in Makefile: all_man also requires man-generator now 2017-02-14 13:24:31 +00:00
README README: fix link to lvm-devel mailing list 2015-03-31 15:44:00 +02:00
VERSION post-release 2016-11-30 23:21:11 +00:00
VERSION_DM post-release 2016-11-30 23:21:11 +00:00
WHATS_NEW lvchange: reject writemostly/writebehind on raid1 during resync 2017-02-23 15:09:29 +01:00
WHATS_NEW_DM mem: add extra mem pages for pthread stack 2017-02-11 18:23:15 +01:00

This tree contains the LVM2 and device-mapper tools and libraries.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sources.redhat.com/pub/lvm2/

The source code is stored in git:
  http://git.fedorahosted.org/git/lvm2.git
  git clone git://git.fedorahosted.org/git/lvm2.git

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing lists for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/lvm-devel

  lvm2-commits@lists.fedorahosted.org (Read-only archive of commits)
  Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel

The source code repository used until 7th June 2012 is accessible here:
  http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2.