1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-09 01:18:39 +03:00
lvm2/lib/metadata
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
..
lv_alloc.h discards: don't discard reconfigured extents 2012-06-27 22:12:01 +01:00
lv_manip.c thin: fix resize of stacked thin pool volume 2013-09-07 03:24:48 +02:00
lv.c thin: report 'e' volume type pool metadata spare 2013-07-18 18:22:44 +02:00
lv.h report: add vg_profile and lv_profile to report the profile attached to VG/LV 2013-07-02 15:22:12 +02:00
merge.c thin: validation catch multiseg thin pool/volumes 2013-09-07 03:32:07 +02:00
metadata-exported.h thin: fix resize of stacked thin pool volume 2013-09-07 03:24:48 +02:00
metadata.c metadata: Fix tracking of read_status flags in _vg_make_handle. 2013-07-22 12:04:47 +02:00
metadata.h thin: rename extend_pool to create_pool 2013-07-23 13:33:14 +01:00
mirror.c Revert a previous change 2013-07-24 14:18:07 -05:00
pv_alloc.h discards: split discard from release_pv_segment 2012-06-27 22:11:54 +01:00
pv_manip.c cleanup: use dm_list_empty 2013-07-18 18:22:42 +02:00
pv_map.c logging: classify log_debug messages 2013-01-07 22:30:29 +00:00
pv_map.h Track unreserved space for all alloc policies and then permit NORMAL to place 2012-02-01 02:10:45 +00:00
pv.c refactor: rename embedding area -> bootloader area 2013-05-28 12:37:22 +02:00
pv.h refactor: rename embedding area -> bootloader area 2013-05-28 12:37:22 +02:00
raid_manip.c Misc/RAID: Enable resume_lv to handle some renaming conflicts. 2013-09-09 15:07:28 -05:00
replicator_manip.c logging: classify log_debug messages 2013-01-07 22:30:29 +00:00
segtype.c clean: remove unneeded assign 2013-06-17 09:34:56 +02:00
segtype.h cleanup: indent line 2013-04-02 15:17:05 +02:00
snapshot_manip.c snapshot: update merging fix 2013-07-23 15:15:04 +02:00
thin_manip.c thin: fix commit e195b5227e 2013-08-06 16:28:12 +02:00
vg.c report: add vg_profile and lv_profile to report the profile attached to VG/LV 2013-07-02 15:22:12 +02:00
vg.h thin: add pool metadata spare lv support 2013-07-18 18:22:43 +02:00