[CRIU] [PATCH] helper: Move service fds closing code to restore_one_helper()

Andrei Vagin avagin at virtuozzo.com
Fri Apr 27 02:30:32 MSK 2018


Applied, thanks!

On Fri, Apr 20, 2018 at 01:10:22PM +0300, Kirill Tkhai wrote:
> There is no reasons we need this cleanup code in generic
> restore_one_task(), so let's move it for better readability.
> 
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> ---
>  criu/cr-restore.c |   20 +++++++++++++-------
>  1 file changed, 13 insertions(+), 7 deletions(-)
> 
> diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> index db913b2da..54216b8ea 100644
> --- a/criu/cr-restore.c
> +++ b/criu/cr-restore.c
> @@ -1318,15 +1318,26 @@ static int wait_exiting_children(void)
>   */
>  static int restore_one_helper(void)
>  {
> +	int i;
> +
>  	if (prepare_fds(current))
>  		return -1;
>  
> -	return wait_exiting_children();
> +	if (wait_exiting_children())
> +		return -1;
> +
> +	sfds_protected = false;
> +	close_image_dir();
> +	close_proc();
> +	for (i = SERVICE_FD_MIN + 1; i < SERVICE_FD_MAX; i++)
> +		close_service_fd(i);
> +
> +	return 0;
>  }
>  
>  static int restore_one_task(int pid, CoreEntry *core)
>  {
> -	int i, ret;
> +	int ret;
>  
>  	/* No more fork()-s => no more per-pid logs */
>  
> @@ -1336,11 +1347,6 @@ static int restore_one_task(int pid, CoreEntry *core)
>  		ret = restore_one_zombie(core);
>  	else if (current->pid->state == TASK_HELPER) {
>  		ret = restore_one_helper();
> -		sfds_protected = false;
> -		close_image_dir();
> -		close_proc();
> -		for (i = SERVICE_FD_MIN + 1; i < SERVICE_FD_MAX; i++)
> -			close_service_fd(i);
>  	} else {
>  		pr_err("Unknown state in code %d\n", (int)core->tc->task_state);
>  		ret = -1;
> 


More information about the CRIU mailing list