[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