1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-27 18:55:19 +03:00
lvm2/libdm
Jonathan Brassow ca51435153 Misc/RAID: Enable resume_lv to handle some renaming conflicts.
When images and their associated metadata are removed from a RAID1 LV,
the remaining sub-LVs are "shifted" down to fill the gaps.  For
example, if there is a 3-way mirror:
	[0][1][2]
and we remove device#0, the devices will be shifted down
	[1][2]
and renamed.
	[0][1]

This can create a problem for resume_lv (specifically,
dm_tree_activate_children) during the renaming process though.  This
is because it will attempt to rename the higher indexed sub-LVs first
and find that it cannot because there are currently other sub-LVs with
that name.  The solution is to check for a conflicting name before
attempting to rename.  If a conflict is found and that conflicting
sub-LV is also in the process of renaming, we can defer the current
rename until the conflicting sub-LV has renamed and cleared the
conflict.

Now that resume_lv can handle these types of rename conflicts, we can
remove the workaround in RAID that was attempting to resume a RAID1
LV from the bottom-up in order to force a proper rename in assending
order before attempting a resume on the top-level LV.  This "hack"
only worked for single machine use-cases of LVM.  Clearing this up
paves the way for exclusive activation of RAID LVs in a cluster.
2013-09-09 15:07:28 -05:00
..
datastruct Use void pointer instead of char for binary key 2011-03-10 12:48:40 +00:00
ioctl dmsetup: display any message output from kernel 2013-08-16 15:25:39 +01:00
misc ioctl: add DM_DATA_OUT_FLAG to dm-ioctl.h 2013-05-17 17:06:40 +01:00
mm debug: add pointer to -DDEBUG_POOL compilation 2013-06-25 13:47:39 +02:00
regex cleanup: stack usage 2013-07-01 23:11:14 +02:00
.exported_symbols Generate liblvm2app and libdevmapper exported symbols from header files. 2010-06-25 18:17:38 +00:00
libdevmapper.h dmsetup: display any message output from kernel 2013-08-16 15:25:39 +01:00
libdevmapper.pc.in Switch to use Requires.private for devmapper.pc and lvm2app.pc 2010-05-11 08:54:11 +00:00
libdm-common.c libdm: new name can't be empty 2013-08-31 21:40:28 +02:00
libdm-common.h libdm: introduce and use DEV_UUID macro 2012-10-10 17:16:15 +02:00
libdm-config.c cleanup: use simplier structure initialization 2013-06-16 00:07:33 +02:00
libdm-deptree.c Misc/RAID: Enable resume_lv to handle some renaming conflicts. 2013-09-09 15:07:28 -05:00
libdm-file.c Drop unreachable code 2012-02-08 12:59:45 +00:00
libdm-report.c cleanup: switch log_error to log_warn 2012-10-17 15:41:35 +02:00
libdm-string.c libdm: improve check in dm_split_lvm_name 2013-04-21 23:10:43 +02:00
Makefile.in configure: Use pkg-config to look for valgrind/memcheck.h. 2012-10-09 20:54:41 +02:00