mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
raid: properly rename split image
When we split leg from raid - we take a proper new lock for a new LV. However for now activation checks only 'existince' of device UUID, but it's not validating device has a proper name. As a quick fix call suspend()/resume() to rename after split mirror.
This commit is contained in:
parent
00d53d5fc1
commit
f3bd9a2797
@ -1,5 +1,6 @@
|
||||
Version 2.02.115 -
|
||||
=====================================
|
||||
Correctly rename active split LV with -splitmirrors for raid1.
|
||||
Add report/compact_output to lvm.conf to enable/disable compact report output.
|
||||
Still restrict mirror region size to power of 2 when VG extent size is not.
|
||||
|
||||
|
@ -1164,6 +1164,22 @@ int lv_raid_split(struct logical_volume *lv, const char *split_name,
|
||||
if (!activate_lv_excl_local(cmd, lvl->lv))
|
||||
return_0;
|
||||
|
||||
/*
|
||||
* Since newly split LV is typically already active - we need to call
|
||||
* suspend() and resume() to also rename it.
|
||||
*
|
||||
* TODO: activate should recognize it and avoid these 2 calls
|
||||
*/
|
||||
if (!suspend_lv(cmd, lvl->lv)) {
|
||||
log_error("Failed to suspend %s.", lvl->lv->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!resume_lv(cmd, lvl->lv)) {
|
||||
log_error("Failed to reactivate %s.", lvl->lv->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
dm_list_iterate_items(lvl, &removal_list)
|
||||
if (!activate_lv_excl_local(cmd, lvl->lv))
|
||||
return_0;
|
||||
|
@ -107,6 +107,7 @@ aux wait_for_sync $vg $lv1
|
||||
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
||||
check lv_exists $vg $lv1
|
||||
check linear $vg $lv2
|
||||
check active $vg $lv2
|
||||
# FIXME: ensure no residual devices
|
||||
lvremove -ff $vg
|
||||
|
||||
@ -116,6 +117,7 @@ aux wait_for_sync $vg $lv1
|
||||
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
||||
check linear $vg $lv1
|
||||
check linear $vg $lv2
|
||||
check active $vg $lv2
|
||||
# FIXME: ensure no residual devices
|
||||
lvremove -ff $vg
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user