[CRIU] [PATCH] restore: Save some time mounting proc

Andrei Vagin avagin at virtuozzo.com
Fri Apr 21 21:11:53 PDT 2017


Applied, thanks

On Thu, Apr 13, 2017 at 06:29:13PM +0300, Pavel Emelyanov wrote:
> When restoring w/o namespaces it doesn't make sence to
> mount /proc by hands and detach it. We can just use the
> host-side one.
> 
> Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
> ---
>  criu/cr-restore.c | 25 +++++++++++++++----------
>  1 file changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> index 7842e16..6806d6e 100644
> --- a/criu/cr-restore.c
> +++ b/criu/cr-restore.c
> @@ -1263,19 +1263,24 @@ static int mount_proc(void)
>  	int fd, ret;
>  	char proc_mountpoint[] = "crtools-proc.XXXXXX";
>  
> -	if (mkdtemp(proc_mountpoint) == NULL) {
> -		pr_perror("mkdtemp failed %s", proc_mountpoint);
> -		return -1;
> -	}
> +	if (root_ns_mask == 0)
> +		fd = ret = open("/proc", O_DIRECTORY);
> +	else {
> +		if (mkdtemp(proc_mountpoint) == NULL) {
> +			pr_perror("mkdtemp failed %s", proc_mountpoint);
> +			return -1;
> +		}
>  
> -	pr_info("Mount procfs in %s\n", proc_mountpoint);
> -	if (mount("proc", proc_mountpoint, "proc", MS_MGC_VAL | MS_NOSUID | MS_NOEXEC | MS_NODEV, NULL)) {
> -		pr_perror("mount failed");
> -		rmdir(proc_mountpoint);
> -		return -1;
> +		pr_info("Mount procfs in %s\n", proc_mountpoint);
> +		if (mount("proc", proc_mountpoint, "proc", MS_MGC_VAL | MS_NOSUID | MS_NOEXEC | MS_NODEV, NULL)) {
> +			pr_perror("mount failed");
> +			rmdir(proc_mountpoint);
> +			return -1;
> +		}
> +
> +		ret = fd = open_detach_mount(proc_mountpoint);
>  	}
>  
> -	ret = fd = open_detach_mount(proc_mountpoint);
>  	if (fd >= 0) {
>  		ret = set_proc_fd(fd);
>  		close(fd);
> -- 
> 2.5.5
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list