]> git.proxmox.com Git - mirror_lxc.git/commitdiff
Revert "snapshots: move snapshot directory"
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Mon, 28 Apr 2014 22:33:36 +0000 (17:33 -0500)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Mon, 28 Apr 2014 22:33:36 +0000 (17:33 -0500)
This reverts commit 276a086264a0fc1703128578d38c0574127a1c2f.

It breaks lxc-test-snapshot, and perhaps we should go with
stgraber's suggestion of using $lxcpath/$lxcname/snaps/

src/lxc/lxccontainer.c
src/lxc/lxccontainer.h

index 1059961cc1bbd70f905f48f9a140287f46bfdfa2..c90b564f8b882510a95baed196c40e14b83f2a42 100644 (file)
@@ -2823,42 +2823,16 @@ static int get_next_index(const char *lxcpath, char *cname)
        }
 }
 
-static bool get_snappath_dir(struct lxc_container *c, char *snappath)
-{
-       int ret;
-       /*
-        * If the old style snapshot path exists, use it
-        * /var/lib/lxc -> /var/lib/lxcsnaps
-        */
-       ret = snprintf(snappath, MAXPATHLEN, "%ssnaps", c->config_path);
-       if (ret < 0 || ret >= MAXPATHLEN)
-               return false;
-       if (dir_exists(snappath)) {
-               ret = snprintf(snappath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
-               if (ret < 0 || ret >= MAXPATHLEN)
-                       return false;
-               return true;
-       }
-
-       /*
-        * Use the new style path
-        * /var/lib/lxc -> /var/lib/lxc + /lxcsnaps/ + c->name + \0
-        */
-       ret = snprintf(snappath, MAXPATHLEN, "%s/lxcsnaps/%s", c->config_path, c->name);
-       if (ret < 0 || ret >= MAXPATHLEN)
-               return false;
-       return true;
-}
-
 static int lxcapi_snapshot(struct lxc_container *c, const char *commentfile)
 {
        int i, flags, ret;
        struct lxc_container *c2;
        char snappath[MAXPATHLEN], newname[20];
 
-       if (!get_snappath_dir(c, snappath)) {
+       // /var/lib/lxc -> /var/lib/lxcsnaps \0
+       ret = snprintf(snappath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
+       if (ret < 0 || ret >= MAXPATHLEN)
                return -1;
-       }
        i = get_next_index(snappath, c->name);
 
        if (mkdir_p(snappath, 0755) < 0) {
@@ -2992,7 +2966,7 @@ static char *get_timestamp(char* snappath, char *name)
 static int lxcapi_snapshot_list(struct lxc_container *c, struct lxc_snapshot **ret_snaps)
 {
        char snappath[MAXPATHLEN], path2[MAXPATHLEN];
-       int count = 0, ret;
+       int dirlen, count = 0, ret;
        struct dirent dirent, *direntp;
        struct lxc_snapshot *snaps =NULL, *nsnaps;
        DIR *dir;
@@ -3000,7 +2974,9 @@ static int lxcapi_snapshot_list(struct lxc_container *c, struct lxc_snapshot **r
        if (!c || !lxcapi_is_defined(c))
                return -1;
 
-       if (!get_snappath_dir(c, snappath)) {
+       // snappath is ${lxcpath}snaps/${lxcname}/
+       dirlen = snprintf(snappath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
+       if (dirlen < 0 || dirlen >= MAXPATHLEN) {
                ERROR("path name too long");
                return -1;
        }
@@ -3068,7 +3044,7 @@ out_free:
 static bool lxcapi_snapshot_restore(struct lxc_container *c, const char *snapname, const char *newname)
 {
        char clonelxcpath[MAXPATHLEN];
-       int flags = 0;
+       int flags = 0,ret;
        struct lxc_container *snap, *rest;
        struct bdev *bdev;
        bool b = false;
@@ -3091,7 +3067,8 @@ static bool lxcapi_snapshot_restore(struct lxc_container *c, const char *snapnam
                        return false;
                }
        }
-       if (!get_snappath_dir(c, clonelxcpath)) {
+       ret = snprintf(clonelxcpath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
+       if (ret < 0 || ret >= MAXPATHLEN) {
                bdev_put(bdev);
                return false;
        }
@@ -3307,12 +3284,6 @@ struct lxc_container *lxc_container_new(const char *name, const char *configpath
 {
        struct lxc_container *c;
 
-       if (!name)
-               return NULL;
-
-       if (strcmp(name, "lxcsnaps") == 0)
-               return NULL;
-
        c = malloc(sizeof(*c));
        if (!c) {
                fprintf(stderr, "failed to malloc lxc_container\n");
index 946a662dcf135ea05ab3386a3f0e848d89685fe6..ba15ab78a29e5323c606315b5f5c5be753fc2692 100644 (file)
@@ -649,7 +649,7 @@ struct lxc_container {
         * \brief Create a container snapshot.
         *
         * Assuming default paths, snapshots will be created as
-        * \c /var/lib/lxc/lxcsnaps/\<c\>/snap\<n\>
+        * \c /var/lib/lxcsnaps/\<c\>/snap\<n\>
         * where \c \<c\> represents the container name and \c \<n\>
         * represents the zero-based snapshot number.
         *
@@ -691,7 +691,7 @@ struct lxc_container {
         *  fail if the  snapshot is overlay-based, since the snapshots
         *  will pin the original container.
         * \note As an example, if the container exists as \c /var/lib/lxc/c1, snapname might be \c 'snap0'
-        *  (representing \c /var/lib/lxc/lxcsnaps/c1/snap0). If \p newname is \p c2,
+        *  (representing \c /var/lib/lxcsnaps/c1/snap0). If \p newname is \p c2,
         *  then \c snap0 will be copied to \c /var/lib/lxc/c2.
         */
        bool (*snapshot_restore)(struct lxc_container *c, const char *snapname, const char *newname);