]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Revert "bdev: non-functional changes"
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:10:36 +0000 (18:10 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:44:36 +0000 (18:44 +0200)
This reverts commit 8608cb0bd3b4ecd8bdf57a397b43ee9f344b8870.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/bdev/bdev.c

index 15a275065ab7df498257f03f6e46d91afdb7bae5..2a33eebe2604c4affc8c13bf860bec291542de09 100644 (file)
@@ -337,12 +337,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        const char *oldpath = c0->config_path;
        struct rsync_data data;
 
-       /* If the container name doesn't show up in the rootfs path, then we
-        * don't know how to come up with a new name.
+       /* if the container name doesn't show up in the rootfs path, then
+        * we don't know how to come up with a new name
         */
        if (!strstr(src, oldname)) {
-               ERROR("Original rootfs path \"%s\" does not include container "
-                     "name \"%s\"", src, oldname);
+               ERROR("original rootfs path %s doesn't include container name %s",
+                     src, oldname);
                return NULL;
        }
 
@@ -371,13 +371,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
                        bdev_put(orig);
                        return NULL;
                }
-
                ret = stat(orig->dest, &sb);
-               if (ret < 0 && errno == ENOENT) {
-                       ret = mkdir_p(orig->dest, 0755);
-                       if (ret < 0)
-                               WARN("Failed to create directoy \"%s\"", orig->dest);
-               }
+
+               if (ret < 0 && errno == ENOENT)
+                       if (mkdir_p(orig->dest, 0755) < 0)
+                               WARN("Failed to create directoy \"%s\"",
+                                    orig->dest);
        }
 
        /* Special case for snapshot. If the caller requested maybe_snapshot and
@@ -387,8 +386,11 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        if (maybe_snap && keepbdevtype && !bdevtype && !orig->ops->can_snapshot)
                snap = false;
 
-       /* If newtype is NULL and snapshot is set, then use overlay. */
-       if (!bdevtype && !keepbdevtype && snap && strcmp(orig->type, "dir") == 0)
+       /*
+        * If newtype is NULL and snapshot is set, then use overlayfs
+        */
+       if (!bdevtype && !keepbdevtype && snap &&
+           strcmp(orig->type, "dir") == 0)
                bdevtype = "overlay";
 
        if (am_unpriv() && !unpriv_snap_allowed(orig, bdevtype, snap, maybe_snap)) {
@@ -399,12 +401,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        }
 
        *needs_rdep = 0;
-       if (bdevtype && !strcmp(orig->type, "dir") &&
+       if (bdevtype && strcmp(orig->type, "dir") == 0 &&
            (strcmp(bdevtype, "aufs") == 0 ||
             strcmp(bdevtype, "overlayfs") == 0 ||
             strcmp(bdevtype, "overlay") == 0)) {
                *needs_rdep = 1;
-       } else if (snap && !strcmp(orig->type, "lvm") &&
+       } else if (snap && strcmp(orig->type, "lvm") == 0 &&
                   !lvm_is_thin_volume(orig->src)) {
                *needs_rdep = 1;
        }
@@ -417,22 +419,20 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        /* get new bdev type */
        new = bdev_get(bdevtype);
        if (!new) {
-               ERROR("Failed to initialize \"%s\" storage driver",
+               ERROR("no such block device type: %s",
                      bdevtype ? bdevtype : orig->type);
                bdev_put(orig);
                return NULL;
        }
-       TRACE("Initialized \"%s\" storage driver", new->type);
+       TRACE("Detected \"%s\" storage driver", new->type);
 
        /* create new paths */
-       ret = new->ops->clone_paths(orig, new, oldname, cname, oldpath, lxcpath,
-                                   snap, newsize, c0->lxc_conf);
-       if (ret < 0) {
-               ERROR("Failed creating new paths for clone of \"%s\"", src);
+       if (new->ops->clone_paths(orig, new, oldname, cname, oldpath, lxcpath,
+                                 snap, newsize, c0->lxc_conf) < 0) {
+               ERROR("Failed getting pathnames for clone of \"%s\"", src);
                goto err;
        }
 
-       /* btrfs */
        if (!strcmp(orig->type, "btrfs") && !strcmp(new->type, "btrfs")) {
                bool bret = false;
                if (snap || btrfs_same_fs(orig->dest, new->dest) == 0)
@@ -444,7 +444,6 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
                return new;
        }
 
-       /* lvm */
        if (!strcmp(orig->type, "lvm") && !strcmp(new->type, "lvm")) {
                bool bret = false;
                if (snap)
@@ -459,22 +458,19 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        }
 
        if (strcmp(bdevtype, "btrfs")) {
-               if (!strcmp(new->type, "overlay") || !strcmp(new->type, "overlayfs"))
+               if (!strcmp(new->type, "overlay") ||
+                   !strcmp(new->type, "overlayfs"))
                        src_no_prefix = ovl_get_lower(new->src);
                else
                        src_no_prefix = lxc_storage_get_path(new->src, new->type);
 
-               if (am_unpriv()) {
-                       ret = chown_mapped_root(src_no_prefix, c0->lxc_conf);
-                       if (ret < 0)
-                               WARN("Failed to chown \"%s\"", new->src);
-               }
+               if (am_unpriv() && chown_mapped_root(src_no_prefix, c0->lxc_conf) < 0)
+                       WARN("Failed to chown \"%s\"", src_no_prefix);
        }
 
        if (snap)
                return new;
 
-       /* rsync the contents from source to target */
        pid = fork();
        if (pid < 0) {
                SYSERROR("fork");