]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Revert "storage: prefix all dir paths"
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:40:59 +0000 (18:40 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:46:13 +0000 (18:46 +0200)
This reverts commit 276fb978ee319c690e6c9ce9df16fb7a21953d2d.

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

index 8d5573951328872339d292be84491129567bf914..221351a35f8577abfc7dd3e07016e9ddb60ee7c0 100644 (file)
@@ -309,7 +309,6 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
        struct bdev *orig, *new;
        pid_t pid;
        int ret;
-       char *src_no_prefix;
        bool snap = flags & LXC_CLONE_SNAPSHOT;
        bool maybe_snap = flags & LXC_CLONE_MAYBE_SNAPSHOT;
        bool keepbdevtype = flags & LXC_CLONE_KEEPBDEVTYPE;
@@ -410,9 +409,7 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
                goto err;
        }
 
-       src_no_prefix = lxc_storage_get_path(new->src, new->type);
-
-       if (am_unpriv() && chown_mapped_root(src_no_prefix, c0->lxc_conf) < 0)
+       if (am_unpriv() && chown_mapped_root(new->src, c0->lxc_conf) < 0)
                WARN("Failed to update ownership of %s", new->dest);
 
        if (snap)
@@ -466,8 +463,6 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
                                    "rsync_rootfs_wrapper");
        else
                ret = rsync_rootfs(&data);
-       if (ret < 0)
-               ERROR("Failed to rsync");
 
        exit(ret == 0 ? 0 : 1);
 
index cd3d40ad65c6501328714e6e117b2c7440a8a44c..93359257c9a998d5686beb86c18ba8809514b9f7 100644 (file)
@@ -39,8 +39,7 @@ int dir_clonepaths(struct bdev *orig, struct bdev *new, const char *oldname,
                const char *cname, const char *oldpath, const char *lxcpath,
                int snap, uint64_t newsize, struct lxc_conf *conf)
 {
-       int ret;
-       size_t len;
+       int len, ret;
 
        if (snap) {
                ERROR("directories cannot be snapshotted.  Try aufs or overlayfs.");
@@ -50,58 +49,38 @@ int dir_clonepaths(struct bdev *orig, struct bdev *new, const char *oldname,
        if (!orig->dest || !orig->src)
                return -1;
 
-       len = strlen(lxcpath) + strlen(cname) + strlen("rootfs") + 4 + 3;
+       len = strlen(lxcpath) + strlen(cname) + strlen("rootfs") + 3;
        new->src = malloc(len);
        if (!new->src)
                return -1;
-
-       ret = snprintf(new->src, len, "dir:%s/%s/rootfs", lxcpath, cname);
-       if (ret < 0 || (size_t)ret >= len)
+       ret = snprintf(new->src, len, "%s/%s/rootfs", lxcpath, cname);
+       if (ret < 0 || ret >= len)
                return -1;
-
-       new->dest = strdup(new->src + 4);
-       if (!new->dest)
+       if ((new->dest = strdup(new->src)) == NULL)
                return -1;
 
        return 0;
 }
 
 int dir_create(struct bdev *bdev, const char *dest, const char *n,
-              struct bdev_specs *specs)
+               struct bdev_specs *specs)
 {
-       int ret;
-       const char *src;
-       size_t len;
-
-       /* strlen("dir:") */
-       len = 4;
        if (specs && specs->dir)
-               src = specs->dir;
+               bdev->src = strdup(specs->dir);
        else
-               src = dest;
-
-       len += strlen(src) + 1;
-       bdev->src = malloc(len);
-       if (!bdev->src)
-               return -1;
-
-       ret = snprintf(bdev->src, len, "dir:%s", src);
-       if (ret < 0 || (size_t)ret >= len)
-               return -1;
-
+               bdev->src = strdup(dest);
        bdev->dest = strdup(dest);
-       if (!bdev->dest)
+       if (!bdev->src || !bdev->dest) {
+               ERROR("Out of memory");
                return -1;
+       }
 
-       ret = mkdir_p(src, 0755);
-       if (ret < 0) {
-               ERROR("Failed to create %s", src);
+       if (mkdir_p(bdev->src, 0755) < 0) {
+               ERROR("Error creating %s", bdev->src);
                return -1;
        }
-
-       ret = mkdir_p(bdev->dest, 0755);
-       if (ret < 0) {
-               ERROR("Failed to create %s", bdev->dest);
+       if (mkdir_p(bdev->dest, 0755) < 0) {
+               ERROR("Error creating %s", bdev->dest);
                return -1;
        }
 
@@ -110,13 +89,8 @@ int dir_create(struct bdev *bdev, const char *dest, const char *n,
 
 int dir_destroy(struct bdev *orig)
 {
-       char *src;
-
-       src = lxc_storage_get_path(orig->src, orig->src);
-
-       if (lxc_rmdir_onedev(src, NULL) < 0)
+       if (lxc_rmdir_onedev(orig->src, NULL) < 0)
                return -1;
-
        return 0;
 }
 
@@ -126,20 +100,18 @@ int dir_detect(const char *path)
                return 1; // take their word for it
        if (is_dir(path))
                return 1;
-
        return 0;
 }
 
 int dir_mount(struct bdev *bdev)
 {
        unsigned long mntflags;
-       char *src, *mntdata;
+       char *mntdata;
        int ret;
        unsigned long mflags;
 
        if (strcmp(bdev->type, "dir"))
                return -22;
-
        if (!bdev->src || !bdev->dest)
                return -22;
 
@@ -148,14 +120,12 @@ int dir_mount(struct bdev *bdev)
                return -22;
        }
 
-       src = lxc_storage_get_path(bdev->src, bdev->type);
-
-       ret = mount(src, bdev->dest, "bind", MS_BIND | MS_REC | mntflags, mntdata);
+       ret = mount(bdev->src, bdev->dest, "bind", MS_BIND | MS_REC | mntflags, mntdata);
        if ((0 == ret) && (mntflags & MS_RDONLY)) {
                DEBUG("remounting %s on %s with readonly options",
-                       src ? src : "(none)", bdev->dest ? bdev->dest : "(none)");
-               mflags = add_required_remount_flags(src, bdev->dest, MS_BIND | MS_REC | mntflags | MS_REMOUNT);
-               ret = mount(src, bdev->dest, "bind", mflags, mntdata);
+                       bdev->src ? bdev->src : "(none)", bdev->dest ? bdev->dest : "(none)");
+               mflags = add_required_remount_flags(bdev->src, bdev->dest, MS_BIND | MS_REC | mntflags | MS_REMOUNT);
+               ret = mount(bdev->src, bdev->dest, "bind", mflags, mntdata);
        }
 
        free(mntdata);
@@ -166,9 +136,7 @@ int dir_umount(struct bdev *bdev)
 {
        if (strcmp(bdev->type, "dir"))
                return -22;
-
        if (!bdev->src || !bdev->dest)
                return -22;
-
        return umount(bdev->dest);
 }
index 41eb881c4ac4c3996774b1312fc79cc64758aa00..8af39898ddda0450b32150c0e104411790a85c47 100644 (file)
@@ -139,3 +139,4 @@ int rsync_rootfs_wrapper(void *data)
        struct rsync_data *arg = data;
        return rsync_rootfs(arg);
 }
+
index 657f703efee2559197a030094cd08e6bb8cf479a..900cd9b4aefec618608bd191292abfdad34a3ecb 100644 (file)
@@ -1265,10 +1265,8 @@ static bool create_run_template(struct lxc_container *c, char *tpath, bool need_
                                exit(1);
                        }
                } else { // TODO come up with a better way here!
-                       char *src;
                        free(bdev->dest);
-                       src = lxc_storage_get_path(bdev->src, bdev->type);
-                       bdev->dest = strdup(src);
+                       bdev->dest = strdup(bdev->src);
                }
 
                /*
@@ -1433,7 +1431,7 @@ static bool create_run_template(struct lxc_container *c, char *tpath, bool need_
                }
                /* execute */
                execvp(tpath, newargv);
-               SYSERROR("Failed to execute template %s", tpath);
+               SYSERROR("failed to execute template %s", tpath);
                exit(1);
        }