[lxc-devel] [PATCH] lxc-copy: cleanup
Christian Brauner
christian.brauner at mailbox.org
Thu Jan 28 15:21:37 UTC 2016
Signed-off-by: Christian Brauner <christian.brauner at mailbox.org>
---
src/lxc/lxc_copy.c | 44 ++++++++++++++++++--------------------------
1 file changed, 18 insertions(+), 26 deletions(-)
diff --git a/src/lxc/lxc_copy.c b/src/lxc/lxc_copy.c
index 9812176..5919bf6 100644
--- a/src/lxc/lxc_copy.c
+++ b/src/lxc/lxc_copy.c
@@ -240,41 +240,36 @@ static int mk_rand_ovl_dirs(struct mnts *mnts, unsigned int num, struct lxc_argu
char upperdir[MAXPATHLEN];
char workdir[MAXPATHLEN];
unsigned int i;
- int ret = 0;
- struct mnts *m;
+ int ret;
+ struct mnts *m = NULL;
- for (i = 0; i < num; i++) {
- m = mnts + i;
+ for (i = 0, m = mnts; i < num; i++, m++) {
if ((m->mnt_type == LXC_MNT_OVL) || (m->mnt_type == LXC_MNT_AUFS)) {
ret = snprintf(upperdir, MAXPATHLEN, "%s/%s/delta#XXXXXX",
arg->newpath, arg->newname);
if (ret < 0 || ret >= MAXPATHLEN)
- goto err;
+ return -1;
if (!mkdtemp(upperdir))
- goto err;
+ return -1;
m->upper = strdup(upperdir);
if (!m->upper)
- goto err;
+ return -1;
}
if (m->mnt_type == LXC_MNT_OVL) {
ret = snprintf(workdir, MAXPATHLEN, "%s/%s/work#XXXXXX",
arg->newpath, arg->newname);
if (ret < 0 || ret >= MAXPATHLEN)
- goto err;
+ return -1;
if (!mkdtemp(workdir))
- goto err;
+ return -1;
m->workdir = strdup(workdir);
if (!m->workdir)
- goto err;
+ return -1;
}
}
return 0;
-
-err:
- free_mnts(mnt_table, mnt_table_size);
- return -1;
}
static char *construct_path(char *path, bool as_prefix)
@@ -343,7 +338,6 @@ static char *set_mnt_entry(struct mnts *m)
return mntentry;
err:
- free_mnts(mnt_table, mnt_table_size);
free(mntentry);
return NULL;
}
@@ -378,7 +372,6 @@ static int do_clone_ephemeral(struct lxc_container *c,
int ret = 0;
bool bret = true;
struct lxc_container *clone;
- struct mnts *n;
lxc_attach_options_t attach_options = LXC_ATTACH_OPTIONS_DEFAULT;
attach_options.env_policy = LXC_ATTACH_CLEAR_ENV;
@@ -408,13 +401,13 @@ static int do_clone_ephemeral(struct lxc_container *c,
goto err;
/* allocate and set mount entries */
- for (i = 0; i < mnt_table_size; i++) {
+ struct mnts *n = NULL;
+ for (i = 0, n = mnt_table; i < mnt_table_size; i++, n++) {
char *mntentry = NULL;
- n = mnt_table + i;
- if ((mntentry = set_mnt_entry(n))) {
+ mntentry = set_mnt_entry(n);
+ if (mntentry)
bret = clone->set_config_item(clone, "lxc.mount.entry", mntentry);
- free(mntentry);
- }
+ free(mntentry);
if (!mntentry || !bret)
goto err;
}
@@ -432,7 +425,7 @@ static int do_clone_ephemeral(struct lxc_container *c,
}
if (!clone->start(clone, 0, NULL)) {
- if (!(clone->lxc_conf->ephemeral == 1))
+ if (clone->lxc_conf->ephemeral != 1)
goto err;
goto put;
}
@@ -492,17 +485,16 @@ static int do_clone_task(struct lxc_container *c, enum task task, int flags,
static void free_mnts(struct mnts *m, unsigned int num)
{
unsigned int i;
- struct mnts *n;
+ struct mnts *n = NULL;
- for (i = 0; i < num; i++) {
- n = m + i;
+ for (i = 0, n = m; i < num; i++, n++) {
free(n->src);
free(n->dest);
free(n->options);
free(n->upper);
free(n->workdir);
}
- free(m);
+ free(n);
}
/* we pass fssize in bytes */
--
2.7.0
More information about the lxc-devel
mailing list