[CRIU] [PATCH v3 08/16] rst_info: artificial files list introduced

Pavel Emelyanov xemul at parallels.com
Mon Dec 14 03:10:18 PST 2015


On 12/10/2015 06:16 PM, Stanislav Kinsburskiy wrote:
> This list is used to collect and handle some service files, which an be used
> only during restore procedure for some service perations, and must be closed
> before process is released.

OK, but I see only opening code in here, where's the closing one?

> AutoFS will use them to fix up mount points druing restore.

Why can't we use existing fds list?

> Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
> ---
>  files.c            |    8 ++++++++
>  include/rst_info.h |    1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/files.c b/files.c
> index e6919cd..1a1c811 100644
> --- a/files.c
> +++ b/files.c
> @@ -690,6 +690,7 @@ int prepare_fd_pid(struct pstree_item *item)
>  	INIT_LIST_HEAD(&rst_info->eventpoll);
>  	INIT_LIST_HEAD(&rst_info->tty_slaves);
>  	INIT_LIST_HEAD(&rst_info->tty_ctty);
> +	INIT_LIST_HEAD(&rst_info->artificial);
>  
>  	if (!fdinfo_per_id) {
>  		img = open_image(CR_FD_FDINFO, O_RSTR, pid);
> @@ -1105,6 +1106,13 @@ int prepare_fds(struct pstree_item *me)
>  		ret = open_fdinfos(me->pid.virt, &rsti(me)->eventpoll, state);
>  		if (ret)
>  			break;
> +
> +		/* Artificial file descriptors are not transfered within images.
> +		 * They are created on restore procedure for some internal
> +		 * needs, like Autofs helper fds. */
> +		ret = open_fdinfos(me->pid.virt, &rsti(me)->artificial, state);
> +		if (ret)
> +			break;
>  	}
>  
>  	if (ret)
> diff --git a/include/rst_info.h b/include/rst_info.h
> index b72e5d0..74e01ee 100644
> --- a/include/rst_info.h
> +++ b/include/rst_info.h
> @@ -31,6 +31,7 @@ struct rst_info {
>  	struct list_head	eventpoll;
>  	struct list_head	tty_slaves;
>  	struct list_head	tty_ctty;
> +	struct list_head	artificial;
>  
>  	void			*premmapped_addr;
>  	unsigned long		premmapped_len;
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
> .
> 



More information about the CRIU mailing list