mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +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 -
|
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.
|
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.
|
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))
|
if (!activate_lv_excl_local(cmd, lvl->lv))
|
||||||
return_0;
|
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)
|
dm_list_iterate_items(lvl, &removal_list)
|
||||||
if (!activate_lv_excl_local(cmd, lvl->lv))
|
if (!activate_lv_excl_local(cmd, lvl->lv))
|
||||||
return_0;
|
return_0;
|
||||||
|
@ -107,6 +107,7 @@ aux wait_for_sync $vg $lv1
|
|||||||
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
||||||
check lv_exists $vg $lv1
|
check lv_exists $vg $lv1
|
||||||
check linear $vg $lv2
|
check linear $vg $lv2
|
||||||
|
check active $vg $lv2
|
||||||
# FIXME: ensure no residual devices
|
# FIXME: ensure no residual devices
|
||||||
lvremove -ff $vg
|
lvremove -ff $vg
|
||||||
|
|
||||||
@ -116,6 +117,7 @@ aux wait_for_sync $vg $lv1
|
|||||||
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
lvconvert --splitmirrors 1 -n $lv2 $vg/$lv1
|
||||||
check linear $vg $lv1
|
check linear $vg $lv1
|
||||||
check linear $vg $lv2
|
check linear $vg $lv2
|
||||||
|
check active $vg $lv2
|
||||||
# FIXME: ensure no residual devices
|
# FIXME: ensure no residual devices
|
||||||
lvremove -ff $vg
|
lvremove -ff $vg
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user