]> git.proxmox.com Git - mirror_lxc.git/commitdiff
storage: constify where possible
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 28 Nov 2017 12:39:15 +0000 (13:39 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 28 Nov 2017 12:52:47 +0000 (13:52 +0100)
This was made necessary by changes to the overlay driver.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Adrian Reber <areber@redhat.com>
19 files changed:
src/lxc/conf.c
src/lxc/conf.h
src/lxc/lxccontainer.c
src/lxc/storage/btrfs.c
src/lxc/storage/dir.c
src/lxc/storage/loop.c
src/lxc/storage/lvm.c
src/lxc/storage/nbd.c
src/lxc/storage/overlay.c
src/lxc/storage/overlay.h
src/lxc/storage/rbd.c
src/lxc/storage/rsync.c
src/lxc/storage/storage.c
src/lxc/storage/storage.h
src/lxc/storage/storage_utils.c
src/lxc/storage/storage_utils.h
src/lxc/storage/zfs.c
src/lxc/utils.c
src/lxc/utils.h

index 275d0aae80f088292c66e8b5828a00e03f37537e..10ce9f45d7a6faf71569be455f6d625fcda105bb 100644 (file)
@@ -2735,7 +2735,7 @@ int chown_mapped_root_exec_wrapper(void *args)
  * root is privileged with respect to hostuid/hostgid X, allowing
  * him to do the chown.
  */
-int chown_mapped_root(char *path, struct lxc_conf *conf)
+int chown_mapped_root(const char *path, struct lxc_conf *conf)
 {
        uid_t rootuid, rootgid;
        unsigned long val;
@@ -2743,14 +2743,14 @@ int chown_mapped_root(char *path, struct lxc_conf *conf)
        struct stat sb;
        char map1[100], map2[100], map3[100], map4[100], map5[100];
        char ugid[100];
-       char *args1[] = {"lxc-usernsexec",
+       const char *args1[] = {"lxc-usernsexec",
                         "-m", map1,
                         "-m", map2,
                         "-m", map3,
                         "-m", map5,
                         "--", "chown", ugid, path,
                         NULL};
-       char *args2[] = {"lxc-usernsexec",
+       const char *args2[] = {"lxc-usernsexec",
                         "-m", map1,
                         "-m", map2,
                         "-m", map3,
index 58302cf30c002bc9b1412a7b1d065b0c9c83a6de..4af5190ba7311cb4b6af7eec7f0a3ff707b7718d 100644 (file)
@@ -396,7 +396,7 @@ extern int setup_resource_limits(struct lxc_list *limits, pid_t pid);
 extern int find_unmapped_nsid(struct lxc_conf *conf, enum idtype idtype);
 extern int mapped_hostid(unsigned id, struct lxc_conf *conf,
                         enum idtype idtype);
-extern int chown_mapped_root(char *path, struct lxc_conf *conf);
+extern int chown_mapped_root(const char *path, struct lxc_conf *conf);
 extern int lxc_ttys_shift_ids(struct lxc_conf *c);
 extern int userns_exec_1(struct lxc_conf *conf, int (*fn)(void *), void *data,
                         const char *fn_name);
index 38985ecb1a29f8cb0579e038e2a024dd1ff1d42c..d7f8bb5c9cd36b7c2efa432d9b3e302c1273ab4c 100644 (file)
@@ -1315,7 +1315,7 @@ static bool create_run_template(struct lxc_container *c, char *tpath, bool need_
                                }
                        }
                } else { /* TODO come up with a better way here! */
-                       char *src;
+                       const char *src;
                        free(bdev->dest);
                        src = lxc_storage_get_path(bdev->src, bdev->type);
                        bdev->dest = strdup(src);
index 29b44dfdfdf754c4de51cdd373a42fa8b5d8e7b5..47f199b940b3227e947be6e6267d210dba7dc600 100644 (file)
@@ -187,7 +187,8 @@ bool btrfs_detect(const char *path)
 int btrfs_mount(struct lxc_storage *bdev)
 {
        unsigned long mntflags;
-       char *mntdata, *src;
+       char *mntdata;
+       const char *src;
        int ret;
 
        if (strcmp(bdev->type, "btrfs"))
@@ -348,7 +349,7 @@ out:
 
 int btrfs_snapshot_wrapper(void *data)
 {
-       char *src;
+       const char *src;
        struct rsync_data_char *arg = data;
 
        if (setgid(0) < 0) {
@@ -372,7 +373,7 @@ int btrfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
                     const char *oldpath, const char *lxcpath, int snap,
                     uint64_t newsize, struct lxc_conf *conf)
 {
-       char *src;
+       const char *src;
 
        if (!orig->dest || !orig->src)
                return -1;
@@ -821,7 +822,7 @@ bool btrfs_try_remove_subvol(const char *path)
 
 int btrfs_destroy(struct lxc_storage *orig)
 {
-       char *src;
+       const char *src;
 
        src = lxc_storage_get_path(orig->src, "btrfs");
 
index 9a050b227815f39715464bb756caef947aa2693c..fd2e075268eb2e9aaf0835b5c745693cac43fca8 100644 (file)
@@ -39,7 +39,7 @@ int dir_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
                   const char *lxcpath, int snap, uint64_t newsize,
                   struct lxc_conf *conf)
 {
-       char *src_no_prefix;
+       const char *src_no_prefix;
        int ret;
        size_t len;
 
@@ -121,7 +121,7 @@ int dir_create(struct lxc_storage *bdev, const char *dest, const char *n,
 int dir_destroy(struct lxc_storage *orig)
 {
        int ret;
-       char *src;
+       const char *src;
 
        src = lxc_storage_get_path(orig->src, orig->src);
 
@@ -149,7 +149,8 @@ int dir_mount(struct lxc_storage *bdev)
 {
        int ret;
        unsigned long mflags, mntflags;
-       char *src, *mntdata;
+       char *mntdata;
+       const char *src;
 
        if (strcmp(bdev->type, "dir"))
                return -22;
index f98ebcb273bfc3e4c4322a659db9f08456ab0742..c4d393452584b1e4aeab3ae676025d9f4a255956 100644 (file)
@@ -235,7 +235,7 @@ int loop_mount(struct lxc_storage *bdev)
 {
        int ret, loopfd;
        char loname[MAXPATHLEN];
-       char *src;
+       const char *src;
 
        if (strcmp(bdev->type, "loop"))
                return -22;
index 86ca7670a4ff328b0ae843a331274f7d2e1c0ff5..e18ba8424ceb97a6a3f73db2e4fa1687b1747f55 100644 (file)
@@ -235,7 +235,7 @@ bool lvm_detect(const char *path)
 
 int lvm_mount(struct lxc_storage *bdev)
 {
-       char *src;
+       const char *src;
 
        if (strcmp(bdev->type, "lvm"))
                return -22;
@@ -330,11 +330,12 @@ static int lvm_snapshot_create_new_uuid_wrapper(void *data)
 static int lvm_snapshot(struct lxc_storage *orig, const char *path, uint64_t size)
 {
        int ret;
-       char *origsrc, *pathdup, *lv;
+       char *lv, *pathdup;
        char sz[24];
        char fstype[100];
        char cmd_output[MAXPATHLEN];
        char repairchar;
+       const char *origsrc;
        struct lvcreate_args cmd_args = {0};
 
        ret = snprintf(sz, 24, "%" PRIu64 "b", size);
@@ -433,7 +434,8 @@ int lvm_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
                    (const char *[]){"lvm:", "dev", vg, cname, NULL},
                    false);
        } else {
-               char *dup, *slider, *src;
+               const char *src;
+               char *dup, *slider;
 
                src = lxc_storage_get_path(orig->src, orig->type);
 
@@ -497,11 +499,11 @@ int lvm_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
 bool lvm_create_clone(struct lxc_conf *conf, struct lxc_storage *orig,
                      struct lxc_storage *new, uint64_t newsize)
 {
-       char *src;
-       const char *thinpool;
        int ret;
+       const char *src;
+       const char *thinpool;
        struct rsync_data data;
-       char *cmd_args[2];
+       const char *cmd_args[2];
        char cmd_output[MAXPATHLEN] = {0};
        char fstype[100] = "ext4";
        uint64_t size = newsize;
@@ -560,7 +562,7 @@ bool lvm_create_snapshot(struct lxc_conf *conf, struct lxc_storage *orig,
                         struct lxc_storage *new, uint64_t newsize)
 {
        int ret;
-       char *newsrc;
+       const char *newsrc;
        uint64_t size = newsize;
 
        if (is_blktype(orig)) {
index 1fff5b60e2ca24de35b3e3436288418a1b3a1aaf..5262e4e1f0e406d481ee7f4a62ae3bb3cf6c60d5 100644 (file)
@@ -118,7 +118,7 @@ bool nbd_detect(const char *path)
 int nbd_mount(struct lxc_storage *bdev)
 {
        int ret = -1, partition;
-       char *src;
+       const char *src;
        char path[50];
 
        if (strcmp(bdev->type, "nbd"))
index 81fd80f98d6f570557efcd166b682fed0660be61..03e02f603dcedb000c12daffd5500617b4ba2ca1 100644 (file)
@@ -54,7 +54,7 @@ int ovl_clonepaths(struct lxc_storage *orig, struct lxc_storage *new, const char
                   int snap, uint64_t newsize, struct lxc_conf *conf)
 {
        int ret;
-       char *src;
+       const char *src;
 
        if (!snap) {
                ERROR("The overlay storage driver can only be used for "
@@ -683,14 +683,14 @@ int ovl_umount(struct lxc_storage *bdev)
        return ret;
 }
 
-char *ovl_get_lower(const char *rootfs_path)
+const char *ovl_get_lower(const char *rootfs_path)
 {
-       char *s1;
+       const char *s1 = rootfs_path;
 
-       s1 = strstr(rootfs_path, ":/");
-       if (!s1)
-               return NULL;
-       s1++;
+       if (strncmp(rootfs_path, "overlay:", 8) == 0)
+               s1 += 8;
+       else if (strncmp(rootfs_path, "overlayfs:", 10) == 0)
+               s1 += 10;
 
        s1 = strstr(s1, ":/");
        if (!s1)
@@ -714,16 +714,20 @@ char *ovl_get_rootfs(const char *rootfs_path, size_t *rootfslen)
        if (!s1)
                return NULL;
 
-       s2 = strstr(s1, ":/");
-       if (s2) {
-               s2 = s2 + 1;
-               if ((s3 = strstr(s2, ":/")))
-                       *s3 = '\0';
-               rootfsdir = strdup(s2);
-               if (!rootfsdir) {
-                       free(s1);
-                       return NULL;
-               }
+       s2 = s1;
+       if (strncmp(rootfs_path, "overlay:", 8) == 0)
+               s2 += 8;
+       else if (strncmp(rootfs_path, "overlayfs:", 10) == 0)
+               s2 += 10;
+
+       s3 = strstr(s2, ":/");
+       if (s3)
+               *s3 = '\0';
+
+       rootfsdir = strdup(s2);
+       if (!rootfsdir) {
+               free(s1);
+               return NULL;
        }
 
        if (!rootfsdir)
index 0aa3cb1ccc3036e470ec302184cf0dfcb8d4cd92..7eeb3513dcc61a2959031a92685ee20801fef100 100644 (file)
@@ -66,7 +66,7 @@ extern int ovl_update_abs_paths(struct lxc_conf *lxc_conf, const char *lxc_path,
 /* To be called from functions in lxccontainer.c: Get lower directory for
  * overlay rootfs.
  */
-extern char *ovl_get_lower(const char *rootfs_path);
+extern const char *ovl_get_lower(const char *rootfs_path);
 
 /* Get rootfs path for overlay backed containers. Allocated memory must be freed
  * by caller.
index e64e80d3159371a4aca3405c23d4730f7293270f..570de53daa2e2fc6bff71e7cf251761bcbcad64c 100644 (file)
@@ -189,7 +189,7 @@ int rbd_create(struct lxc_storage *bdev, const char *dest, const char *n,
 int rbd_destroy(struct lxc_storage *orig)
 {
        int ret;
-       char *src;
+       const char *src;
        char *rbdfullname;
        char cmd_output[MAXPATHLEN];
        struct rbd_args args = {0};
@@ -233,7 +233,7 @@ bool rbd_detect(const char *path)
 
 int rbd_mount(struct lxc_storage *bdev)
 {
-       char *src;
+       const char *src;
 
        if (strcmp(bdev->type, "rbd"))
                return -22;
index 55c9504e797f4ba8f47700215df4053ff0845a05..59aaa05c1983f203ce78ee95efc78b75a6f2719d 100644 (file)
@@ -86,7 +86,7 @@ int lxc_rsync_exec(const char *src, const char *dest)
 int lxc_rsync(struct rsync_data *data)
 {
        int ret;
-       char *dest, *src;
+       const char *dest, *src;
        struct lxc_storage *orig = data->orig, *new = data->new;
 
        ret = unshare(CLONE_NEWNS);
index 734773ffa39ac375f46626006d7a1be2e8283718..98aa031b7f7cad3f4d4063f726045ac99a35d780 100644 (file)
@@ -338,7 +338,7 @@ struct lxc_storage *storage_copy(struct lxc_container *c, const char *cname,
                                 uint64_t newsize, bool *needs_rdep)
 {
        int ret;
-       char *src_no_prefix;
+       const char *src_no_prefix;
        struct lxc_storage *new, *orig;
        bool snap = (flags & LXC_CLONE_SNAPSHOT);
        bool maybe_snap = (flags & LXC_CLONE_MAYBE_SNAPSHOT);
@@ -718,7 +718,7 @@ bool rootfs_is_blockdev(struct lxc_conf *conf)
        return false;
 }
 
-char *lxc_storage_get_path(char *src, const char *prefix)
+const char *lxc_storage_get_path(char *src, const char *prefix)
 {
        size_t prefix_len;
 
index efc963e3c70d2dee0b50b86550593efd70fe016a..fb3b54293902f46b03f5e8c25c02321d4c9cc68e 100644 (file)
@@ -137,6 +137,6 @@ extern struct lxc_storage *storage_create(const char *dest, const char *type,
 extern void storage_put(struct lxc_storage *bdev);
 extern bool storage_destroy(struct lxc_conf *conf);
 extern bool rootfs_is_blockdev(struct lxc_conf *conf);
-extern char *lxc_storage_get_path(char *src, const char *prefix);
+extern const char *lxc_storage_get_path(char *src, const char *prefix);
 
 #endif /* #define __LXC_STORAGE_H */
index 787f1385420fac6c6176920b4dc8ed65d2ebc99a..61b2707e1b01ea6d09fd4291a0b9ff4a715c2012 100644 (file)
@@ -133,7 +133,7 @@ bool attach_block_device(struct lxc_conf *conf)
 int blk_getsize(struct lxc_storage *bdev, uint64_t *size)
 {
        int fd, ret;
-       char *src;
+       const char *src;
 
        src = lxc_storage_get_path(bdev->src, bdev->type);
        fd = open(src, O_RDONLY);
@@ -162,11 +162,15 @@ void detach_block_device(struct lxc_conf *conf)
  */
 int detect_fs(struct lxc_storage *bdev, char *type, int len)
 {
-       int p[2], ret;
+       int ret;
+       int p[2];
        size_t linelen;
        pid_t pid;
        FILE *f;
-       char *sp1, *sp2, *sp3, *srcdev, *line = NULL;
+       char *sp1, *sp2, *sp3;
+       const char *l, *srcdev;
+       char devpath[MAXPATHLEN];
+       char *line = NULL;
 
        if (!bdev || !bdev->src || !bdev->dest)
                return -1;
@@ -218,9 +222,7 @@ int detect_fs(struct lxc_storage *bdev, char *type, int len)
                exit(1);
        }
 
-       /* if symlink, get the real dev name */
-       char devpath[MAXPATHLEN];
-       char *l = linkderef(srcdev, devpath);
+       l = linkderef(srcdev, devpath);
        if (!l)
                exit(1);
        f = fopen("/proc/self/mounts", "r");
@@ -383,7 +385,7 @@ int find_fstype_cb(char *buffer, void *data)
        return 1;
 }
 
-char *linkderef(char *path, char *dest)
+const char *linkderef(const char *path, char *dest)
 {
        struct stat sbuf;
        ssize_t ret;
index 6f53d6f7390cb0df031ba9cd5be841f352a95f8a..3c6bbb0d7422ca026316a25299e35ac49a405f1c 100644 (file)
@@ -45,7 +45,7 @@ extern int is_blktype(struct lxc_storage *b);
 extern int mount_unknown_fs(const char *rootfs, const char *target,
                            const char *options);
 extern int find_fstype_cb(char *buffer, void *data);
-extern char *linkderef(char *path, char *dest);
+extern const char *linkderef(const char *path, char *dest);
 extern bool unpriv_snap_allowed(struct lxc_storage *b, const char *t, bool snap,
                                bool maybesnap);
 extern bool is_valid_storage_type(const char *type);
index be90e5a11c5efcc6e6c7416daf905482c5ef5f9d..5ee81575ecb97381b48bd06abe1ac51653b2d65c 100644 (file)
@@ -180,7 +180,8 @@ int zfs_mount(struct lxc_storage *bdev)
 {
        int ret;
        size_t oldlen, newlen, totallen;
-       char *mntdata, *src, *tmp;
+       char *mntdata, *tmp;
+       const char *src;
        unsigned long mntflags;
        char cmd_output[MAXPATHLEN] = {0};
 
@@ -287,13 +288,13 @@ bool zfs_copy(struct lxc_conf *conf, struct lxc_storage *orig,
        char cmd_output[MAXPATHLEN], option[MAXPATHLEN];
        struct rsync_data data = {0, 0};
        struct zfs_args cmd_args = {0};
-       char *argv[] = {"zfs",                       /* 0    */
-                       "create",                    /* 1    */
-                       "-o",     "",                /* 2, 3 */
-                       "-o",     "canmount=noauto", /* 4, 5 */
-                       "-p",                        /* 6    */
-                       "",                          /* 7    */
-                       NULL};
+       const char *argv[] = {"zfs",                       /* 0    */
+                             "create",                    /* 1    */
+                             "-o",     "",                /* 2, 3 */
+                             "-o",     "canmount=noauto", /* 4, 5 */
+                             "-p",                        /* 6    */
+                             "",                          /* 7    */
+                             NULL};
 
        /* mountpoint */
        ret = snprintf(option, MAXPATHLEN, "mountpoint=%s", new->dest);
@@ -342,7 +343,8 @@ bool zfs_snapshot(struct lxc_conf *conf, struct lxc_storage *orig,
 {
        int ret;
        size_t snapshot_len, len;
-       char *orig_src, *tmp, *snap_name, *snapshot;
+       char *tmp, *snap_name, *snapshot;
+       const char *orig_src;
        struct zfs_args cmd_args = {0};
        char cmd_output[MAXPATHLEN] = {0}, option[MAXPATHLEN];
 
@@ -447,8 +449,9 @@ int zfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
                   const char *lxcpath, int snap, uint64_t newsize,
                   struct lxc_conf *conf)
 {
-       char *dataset, *orig_src, *tmp;
        int ret;
+       char *dataset, *tmp;
+       const char *orig_src;
        size_t dataset_len, len;
        char cmd_output[MAXPATHLEN] = {0};
 
@@ -576,7 +579,8 @@ int zfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
 int zfs_destroy(struct lxc_storage *orig)
 {
        int ret;
-       char *dataset, *src, *tmp;
+       char *dataset, *tmp;
+       const char *src;
        bool found;
        char *parent_snapshot = NULL;
        struct zfs_args cmd_args = {0};
@@ -709,13 +713,13 @@ int zfs_create(struct lxc_storage *bdev, const char *dest, const char *n,
        size_t len;
        struct zfs_args cmd_args = {0};
        char cmd_output[MAXPATHLEN], option[MAXPATHLEN];
-       char *argv[] = {"zfs",                    /* 0    */
-                        "create",                /* 1    */
-                        "-o", "",                /* 2, 3 */
-                        "-o", "canmount=noauto", /* 4, 5 */
-                        "-p",                    /* 6    */
-                        "",                      /* 7    */
-                        NULL};
+       const char *argv[] = {"zfs",                       /* 0    */
+                             "create",                    /* 1    */
+                             "-o",     "",                /* 2, 3 */
+                             "-o",     "canmount=noauto", /* 4, 5 */
+                             "-p",                        /* 6    */
+                             "",                          /* 7    */
+                             NULL};
 
        if (!specs || !specs->zfs.zfsroot)
                zfsroot = lxc_global_config_value("lxc.bdev.zfs.root");
index 19e6c2ee6ef923228e5b22b5ba030519807cce6c..dd8e40d53de171ed8ba50f627ceeb0b50bdb78d1 100644 (file)
@@ -65,7 +65,7 @@ lxc_log_define(lxc_utils, lxc);
  */
 extern bool btrfs_try_remove_subvol(const char *path);
 
-static int _recursive_rmdir(char *dirname, dev_t pdev,
+static int _recursive_rmdir(const char *dirname, dev_t pdev,
                            const char *exclude, int level, bool onedev)
 {
        struct dirent *direntp;
@@ -180,18 +180,18 @@ static bool is_native_overlayfs(const char *path)
 }
 
 /* returns 0 on success, -1 if there were any failures */
-extern int lxc_rmdir_onedev(char *path, const char *exclude)
+extern int lxc_rmdir_onedev(const char *path, const char *exclude)
 {
        struct stat mystat;
        bool onedev = true;
 
-       if (is_native_overlayfs(path)) {
+       if (is_native_overlayfs(path))
                onedev = false;
-       }
 
        if (lstat(path, &mystat) < 0) {
                if (errno == ENOENT)
                        return 0;
+
                ERROR("Failed to stat %s", path);
                return -1;
        }
index 94646326fdf1b6ff97655f682219f11ce7c69614..53c23b8163e052e4f7ea97a888c139988e543607 100644 (file)
@@ -93,7 +93,7 @@
 #define LXC_IDMAPLEN 4096
 
 /* returns 1 on success, 0 if there were any failures */
-extern int lxc_rmdir_onedev(char *path, const char *exclude);
+extern int lxc_rmdir_onedev(const char *path, const char *exclude);
 extern int get_u16(unsigned short *val, const char *arg, int base);
 extern int mkdir_p(const char *dir, mode_t mode);
 extern char *get_rundir(void);