]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Use rdepends when non-thinpool LVM container is cloned
authorKATOH Yasufumi <karma@jazz.email.ne.jp>
Wed, 4 Mar 2015 09:39:14 +0000 (18:39 +0900)
committerStéphane Graber <stgraber@ubuntu.com>
Tue, 10 Mar 2015 02:21:04 +0000 (22:21 -0400)
When a non-thinpool LVM container which have snapshotted clone is
destroyed, the LV of snapshotted clone was also deleted. This patch
prevent it.

The original non-thinpool LVM container of snapshotted clone cannot be
now destroyed.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
src/lxc/bdev.c

index 197ab55e9021f41bf2f392f406153827f05e8215..cf7c0432f540ae27ee36d8c23275265b954427ae 100644 (file)
@@ -3403,8 +3403,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        *needs_rdep = 0;
        if (bdevtype && strcmp(orig->type, "dir") == 0 &&
                        (strcmp(bdevtype, "aufs") == 0 ||
-                        strcmp(bdevtype, "overlayfs") == 0))
+                        strcmp(bdevtype, "overlayfs") == 0)) {
                *needs_rdep = 1;
+       } else if (snap && strcmp(orig->type, "lvm") == 0 &&
+                       !lvm_is_thin_volume(orig->src)) {
+               *needs_rdep = 1;
+       }
 
        new = bdev_get(bdevtype ? bdevtype : orig->type);
        if (!new) {