]> sourceware.org Git - lvm2.git/commitdiff
vgsplit: Don't skip moving internal snapshot LV.
authorAlasdair G Kergon <agk@redhat.com>
Tue, 5 Jul 2016 22:08:14 +0000 (23:08 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Tue, 5 Jul 2016 22:08:14 +0000 (23:08 +0100)
Also place snapshot LV handling back at the end, after all possible
origin and cow LVs got dealt with.

tools/vgsplit.c

index afe87afbaa389892f929388c380e325c6f70310f..221600e8227ba982564c332ee34c4c648aca803d 100644 (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");
This page took 0.032191 seconds and 5 git commands to generate.