]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Revert "storage: prefix all lvm paths"
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:33:04 +0000 (18:33 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 15 Aug 2017 16:46:01 +0000 (18:46 +0200)
This reverts commit 6be74c07d0328f0d7b053524626bc83ae2b2276f.

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

index 8950882da171d333f10b81aac249b64ed49c7de1..f62ba92563bcf0dabbc53d8b7cd452f6ec81bc90 100644 (file)
@@ -162,30 +162,21 @@ int lvm_detect(const char *path)
 
 int lvm_mount(struct bdev *bdev)
 {
-       char *src;
-
        if (strcmp(bdev->type, "lvm"))
                return -22;
-
        if (!bdev->src || !bdev->dest)
                return -22;
-
-       src = lxc_storage_get_path(bdev->src, bdev->type);
-
-       /* If we might pass in data sometime, then we'll have to enrich
-        * mount_unknown_fs().
-        */
-       return mount_unknown_fs(src, bdev->dest, bdev->mntopts);
+       /* if we might pass in data sometime, then we'll have to enrich
+        * mount_unknown_fs */
+       return mount_unknown_fs(bdev->src, bdev->dest, bdev->mntopts);
 }
 
 int lvm_umount(struct bdev *bdev)
 {
        if (strcmp(bdev->type, "lvm"))
                return -22;
-
        if (!bdev->src || !bdev->dest)
                return -22;
-
        return umount(bdev->dest);
 }
 
@@ -307,12 +298,10 @@ int lvm_clonepaths(struct bdev *orig, struct bdev *new, const char *oldname,
                        return -1;
                }
                vg = lxc_global_config_value("lxc.bdev.lvm.vg");
-               len = strlen("/dev/") + strlen(vg) + strlen(cname) + 4 + 2;
-               new->src = malloc(len);
-               if (new->src)
+               len = strlen("/dev/") + strlen(vg) + strlen(cname) + 2;
+               if ((new->src = malloc(len)) == NULL)
                        return -1;
-
-               ret = snprintf(new->src, len, "lvm:/dev/%s/%s", vg, cname);
+               ret = snprintf(new->src, len, "/dev/%s/%s", vg, cname);
                if (ret < 0 || ret >= len)
                        return -1;
        } else {
@@ -353,26 +342,18 @@ int lvm_clonepaths(struct bdev *orig, struct bdev *new, const char *oldname,
        }
 
        if (snap) {
-               char *newsrc, *origsrc;
-
-               origsrc = lxc_storage_get_path(orig->src, "lvm");
-               newsrc = lxc_storage_get_path(new->src, "lvm");
-
-               if (lvm_snapshot(origsrc, newsrc, size) < 0) {
+               if (lvm_snapshot(orig->src, new->src, size) < 0) {
                        ERROR("could not create %s snapshot of %s", new->src, orig->src);
                        return -1;
                }
        } else {
-               char *src;
-
-               src = lxc_storage_get_path(new->src, "lvm");
-               if (do_lvm_create(src, size, lxc_global_config_value("lxc.bdev.lvm.thin_pool")) < 0) {
+               if (do_lvm_create(new->src, size, lxc_global_config_value("lxc.bdev.lvm.thin_pool")) < 0) {
                        ERROR("Error creating new lvm blockdev");
                        return -1;
                }
 
                cmd_args[0] = fstype;
-               cmd_args[1] = src;
+               cmd_args[1] = new->src;
                // create an fs in the loopback file
                ret = run_command(cmd_output, sizeof(cmd_output),
                                  do_mkfs_exec_wrapper, (void *)cmd_args);
@@ -385,20 +366,15 @@ int lvm_clonepaths(struct bdev *orig, struct bdev *new, const char *oldname,
 
 int lvm_destroy(struct bdev *orig)
 {
-       char *src;
-
        pid_t pid;
 
        if ((pid = fork()) < 0)
                return -1;
-
        if (!pid) {
                (void)setenv("LVM_SUPPRESS_FD_WARNINGS", "1", 1);
-               src = lxc_storage_get_path(orig->src, "lvm");
-               execlp("lvremove", "lvremove", "-f", src, (char *)NULL);
+               execlp("lvremove", "lvremove", "-f", orig->src, (char *)NULL);
                exit(EXIT_FAILURE);
        }
-
        return wait_for_pid(pid);
 }
 
@@ -426,12 +402,12 @@ int lvm_create(struct bdev *bdev, const char *dest, const char *n,
        if (specs->lvm.lv)
                lv = specs->lvm.lv;
 
-       len = strlen(vg) + strlen(lv) + 4 + 7;
+       len = strlen(vg) + strlen(lv) + 7;
        bdev->src = malloc(len);
        if (!bdev->src)
                return -1;
 
-       ret = snprintf(bdev->src, len, "lvm:/dev/%s/%s", vg, lv);
+       ret = snprintf(bdev->src, len, "/dev/%s/%s", vg, lv);
        if (ret < 0 || ret >= len)
                return -1;
 
@@ -440,7 +416,7 @@ int lvm_create(struct bdev *bdev, const char *dest, const char *n,
        if (!sz)
                sz = DEFAULT_FS_SIZE;
 
-       if (do_lvm_create(bdev->src + 4, sz, thinpool) < 0) {
+       if (do_lvm_create(bdev->src, sz, thinpool) < 0) {
                ERROR("Error creating new lvm blockdev %s size %"PRIu64" bytes", bdev->src, sz);
                return -1;
        }
@@ -450,7 +426,7 @@ int lvm_create(struct bdev *bdev, const char *dest, const char *n,
                fstype = DEFAULT_FSTYPE;
 
        cmd_args[0] = fstype;
-       cmd_args[1] = bdev->src + 4;
+       cmd_args[1] = bdev->src;
        ret = run_command(cmd_output, sizeof(cmd_output), do_mkfs_exec_wrapper,
                          (void *)cmd_args);
        if (ret < 0)
index 0cf9710fb760d93c9e3ec37131161ac6305ee793..6ca6b51ece7b6d941d3b0fa5e362c9f90f02c1ed 100644 (file)
@@ -129,10 +129,12 @@ bool attach_block_device(struct lxc_conf *conf)
 int blk_getsize(struct bdev *bdev, uint64_t *size)
 {
        int fd, ret;
-       char *src;
+       char *path = bdev->src;
 
-       src = lxc_storage_get_path(bdev->src, bdev->type);
-       fd = open(src, O_RDONLY);
+       if (strcmp(bdev->type, "loop") == 0)
+               path = bdev->src + 5;
+
+       fd = open(path, O_RDONLY);
        if (fd < 0)
                return -1;
 
@@ -161,12 +163,15 @@ int detect_fs(struct bdev *bdev, char *type, int len)
        size_t linelen;
        pid_t pid;
        FILE *f;
-       char *sp1, *sp2, *sp3, *srcdev, *line = NULL;
+       char *sp1, *sp2, *sp3, *line = NULL;
+       char *srcdev;
 
        if (!bdev || !bdev->src || !bdev->dest)
                return -1;
 
-       srcdev = lxc_storage_get_path(bdev->src, bdev->type);
+       srcdev = bdev->src;
+       if (strcmp(bdev->type, "loop") == 0)
+               srcdev = bdev->src + 5;
 
        ret = pipe(p);
        if (ret < 0)