[CRIU] [PATCH 5/8] vzctl: transfer vps_res in vps_chkpnt and vps_restore
Kir Kolyshkin
kir at openvz.org
Wed May 15 20:47:12 EDT 2013
If the sole reason for vps_res is to use it for get_state_file() -- I
have the same answer, just use hardcoded path.
On 05/15/2013 09:10 AM, Andrey Vagin wrote:
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
> include/cpt.h | 2 +-
> include/env.h | 2 +-
> include/snapshot.h | 4 ++--
> src/lib/cpt.c | 6 +++---
> src/lib/hooks_vz.c | 2 +-
> src/snapshot.c | 13 ++++++++-----
> src/vzctl-actions.c | 6 +++---
> 7 files changed, 19 insertions(+), 16 deletions(-)
>
> diff --git a/include/cpt.h b/include/cpt.h
> index 013dbbd..191162b 100644
> --- a/include/cpt.h
> +++ b/include/cpt.h
> @@ -17,7 +17,7 @@
>
> int cpt_cmd(vps_handler *h, envid_t veid, const char *root,
> int action, int cmd, unsigned int ctx);
> -int vps_chkpnt(vps_handler *h, envid_t veid, const fs_param *fs,
> +int vps_chkpnt(vps_handler *h, envid_t veid, const vps_res *res,
> int cmd, cpt_param *param);
> int vps_restore(vps_handler *h, envid_t veid, struct vps_param *vps_p, int cmd,
> cpt_param *param, skipFlags skip);
> diff --git a/include/env.h b/include/env.h
> index 1628bbf..6f7aaf5 100644
> --- a/include/env.h
> +++ b/include/env.h
> @@ -34,7 +34,7 @@
>
>
>
> -typedef int (*env_create_FN)(vps_handler *h, envid_t veid, int wait_p,
> +typedef int (*env_create_FN)(vps_handler *h, envid_t veid, vps_res *res, int wait_p,
> int old_wait_p, int err_p, void *data);
>
> /** Stop modes.
> diff --git a/include/snapshot.h b/include/snapshot.h
> index f3feab4..9ac4e02 100644
> --- a/include/snapshot.h
> +++ b/include/snapshot.h
> @@ -46,11 +46,11 @@ int vzctl_store_snapshot_tree(const char *fname, struct vzctl_snapshot_tree *tre
>
> /* src/snapshot.c */
> int is_snapshot_supported(const char *ve_private);
> -int vzctl_env_create_snapshot(vps_handler *h, envid_t veid, const fs_param *fs,
> +int vzctl_env_create_snapshot(vps_handler *h, envid_t veid, const vps_res *res,
> const struct vzctl_snapshot_param *param);
>
> int vzctl_env_switch_snapshot(vps_handler *h, envid_t veid, vps_param *g_p,
> - const fs_param *fs, const char *guid);
> + const char *guid);
>
> int vzctl_env_delete_snapshot(vps_handler *h, envid_t veid, const fs_param *fs,
> const char *guid);
> diff --git a/src/lib/cpt.c b/src/lib/cpt.c
> index 362c646..5501d92 100644
> --- a/src/lib/cpt.c
> +++ b/src/lib/cpt.c
> @@ -197,14 +197,14 @@ do { \
> } \
> } while (0)
>
> -int vps_chkpnt(vps_handler *h, envid_t veid, const fs_param *fs,
> +int vps_chkpnt(vps_handler *h, envid_t veid, const vps_res *res,
> int cmd, cpt_param *param)
> {
> int dump_fd = -1;
> char buf[PATH_LEN];
> const char *dumpfile = NULL;
> int cpt_fd, pid, ret;
> - const char *root = fs->root;
> + const char *root = res->fs.root;
>
> ret = VZ_CHKPNT_ERROR;
> if (root == NULL) {
> @@ -303,7 +303,7 @@ err:
> return ret;
> }
>
> -static int restore_fn(vps_handler *h, envid_t veid, int wait_p,
> +static int restore_fn(vps_handler *h, envid_t veid, vps_res *res, int wait_p,
> int old_wait_p, int err_p, void *data)
> {
> int status, len, len1, ret;
> diff --git a/src/lib/hooks_vz.c b/src/lib/hooks_vz.c
> index 9f3c401..f358f59 100644
> --- a/src/lib/hooks_vz.c
> +++ b/src/lib/hooks_vz.c
> @@ -255,7 +255,7 @@ static int vz_do_env_create(struct arg_start *arg)
> if (fn == NULL) {
> ret = _env_create(h, (void *)arg);
> } else {
> - ret = fn(h, veid, wait_p, old_wait_p, err_p, data);
> + ret = fn(h, veid, res, wait_p, old_wait_p, err_p, data);
> }
> env_err:
> if (ret)
> diff --git a/src/snapshot.c b/src/snapshot.c
> index 675b2c8..3ea0ea9 100644
> --- a/src/snapshot.c
> +++ b/src/snapshot.c
> @@ -59,7 +59,7 @@ int is_snapshot_supported(const char *ve_private)
> }
>
> int vzctl_env_create_snapshot(vps_handler *h, envid_t veid,
> - const fs_param *fs,
> + const vps_res *res,
> const struct vzctl_snapshot_param *param)
> {
> int ret, run = 0;
> @@ -72,6 +72,7 @@ int vzctl_env_create_snapshot(vps_handler *h, envid_t veid,
> struct ploop_merge_param merge_param = {};
> struct ploop_disk_images_data *di = NULL;
> struct vzctl_snapshot_tree *tree = NULL;
> + const fs_param *fs = &res->fs;
>
> if (!is_snapshot_supported(fs->private))
> return VZCTL_E_CREATE_SNAPSHOT;
> @@ -121,7 +122,7 @@ int vzctl_env_create_snapshot(vps_handler *h, envid_t veid,
> run = vps_is_run(h, veid);
> /* 1 freeze */
> if (run) {
> - ret = vps_chkpnt(h, veid, fs, CMD_SUSPEND, &cpt);
> + ret = vps_chkpnt(h, veid, res, CMD_SUSPEND, &cpt);
> if (ret)
> goto err1;
> }
> @@ -137,7 +138,7 @@ int vzctl_env_create_snapshot(vps_handler *h, envid_t veid,
> if (run) {
> vzctl_get_snapshot_dumpfile(fs->private, guid, fname, sizeof(fname));
> cpt.dumpfile = fname;
> - ret = vps_chkpnt(h, veid, fs, CMD_DUMP, &cpt);
> + ret = vps_chkpnt(h, veid, res, CMD_DUMP, &cpt);
> if (ret)
> goto err2;
> if (cpt_cmd(h, veid, fs->root, CMD_CHKPNT, CMD_RESUME, 0))
> @@ -179,7 +180,7 @@ out:
> }
>
> int vzctl_env_switch_snapshot(vps_handler *h, envid_t veid,
> - vps_param *g_p, const fs_param *fs, const char *guid)
> + vps_param *g_p, const char *guid)
> {
> int ret, run;
> int flags = 0;
> @@ -192,6 +193,8 @@ int vzctl_env_switch_snapshot(vps_handler *h, envid_t veid,
> char dumpfile[PATH_MAX];
> struct vzctl_snapshot_tree *tree = NULL;
> struct ploop_disk_images_data *di = NULL;
> + const vps_res *res = &g_p->res;
> + const fs_param *fs = &res->fs;
>
> if (!is_snapshot_supported(fs->private))
> return VZCTL_E_SWITCH_SNAPSHOT;
> @@ -237,7 +240,7 @@ int vzctl_env_switch_snapshot(vps_handler *h, envid_t veid,
> flags = PLOOP_SNAP_SKIP_TOPDELTA_DESTROY;
> if (ploop.get_top_delta_fname(di, topdelta_fname, sizeof(topdelta_fname)))
> goto err1;
> - ret = vps_chkpnt(h, veid, fs, CMD_SUSPEND, &cpt);
> + ret = vps_chkpnt(h, veid, res, CMD_SUSPEND, &cpt);
> if (ret)
> goto err1;
> } else if (vps_is_mounted(fs->root, fs->private)) {
> diff --git a/src/vzctl-actions.c b/src/vzctl-actions.c
> index e0cd261..284c009 100644
> --- a/src/vzctl-actions.c
> +++ b/src/vzctl-actions.c
> @@ -1297,7 +1297,7 @@ static int chkpnt(vps_handler *h, envid_t veid, vps_param *g_p, vps_param *cmd_p
> return 0;
> }
>
> - ret = vps_chkpnt(h, veid, &g_p->res.fs, cmd, &cmd_p->res.cpt);
> + ret = vps_chkpnt(h, veid, &g_p->res, cmd, &cmd_p->res.cpt);
> if (ret)
> return ret;
> if (cmd == CMD_CHKPNT || cmd == CMD_DUMP) {
> @@ -1605,14 +1605,14 @@ int run_action(envid_t veid, act_t action, vps_param *g_p, vps_param *vps_p,
> #ifdef HAVE_PLOOP
> case ACTION_SNAPSHOT_CREATE:
> ret = vzctl_env_create_snapshot(h, veid,
> - &g_p->res.fs, &cmd_p->snap);
> + &g_p->res, &cmd_p->snap);
> break;
> case ACTION_SNAPSHOT_DELETE:
> ret = vzctl_env_delete_snapshot(h, veid,
> &g_p->res.fs, cmd_p->snap.guid);
> break;
> case ACTION_SNAPSHOT_SWITCH:
> - ret = vzctl_env_switch_snapshot(h, veid, g_p, &g_p->res.fs,
> + ret = vzctl_env_switch_snapshot(h, veid, g_p,
> cmd_p->snap.guid);
> break;
> case ACTION_SNAPSHOT_LIST:
More information about the CRIU
mailing list