1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-28 02:50:41 +03:00

vgsplit: Don't skip moving internal snapshot LV.

Also place snapshot LV handling back at the end, after all possible
origin and cow LVs got dealt with.
This commit is contained in:
Alasdair G Kergon 2016-07-05 23:08:14 +01:00
parent 4d4f48af9f
commit dfcdfa057b

View File

@ -190,10 +190,6 @@ static int _move_snapshots(struct volume_group *vg_from,
if (!(lv->status & SNAPSHOT))
continue;
/* Ignore, if no allocations on PVs of @vg_to */
if (!lv_is_on_pvs(lv, &vg_to->pvs))
continue;
dm_list_iterate_items(seg, &lv->segments) {
cow_from = _lv_is_in_vg(vg_from, seg->cow);
origin_from = _lv_is_in_vg(vg_from, seg->origin);
@ -680,17 +676,18 @@ int vgsplit(struct cmd_context *cmd, int argc, char **argv)
if (!(_move_mirrors(vg_from, vg_to)))
goto_bad;
/* Move required snapshots across */
if (!(_move_snapshots(vg_from, vg_to)))
goto_bad;
/* Move required pools across */
if (!(_move_thins(vg_from, vg_to)))
goto_bad;
/* Move required cache LVs across */
if (!(_move_cache(vg_from, vg_to)))
goto_bad;
/* Move required snapshots across */
if (!(_move_snapshots(vg_from, vg_to)))
goto_bad;
/* Split metadata areas and check if both vgs have at least one area */
if (!(vg_split_mdas(cmd, vg_from, vg_to)) && vg_from->pv_count) {
log_error("Cannot split: Nowhere to store metadata for new Volume Group");