[CRIU] [PATCH 2/2] cgroup: umount cg_yard after opening it

Pavel Emelyanov xemul at parallels.com
Wed Jul 16 06:54:54 PDT 2014


On 07/16/2014 05:46 PM, Andrew Vagin wrote:
> Signed-off-by: Andrew Vagin <avagin at openvz.org>
> ---
>  cgroup.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/cgroup.c b/cgroup.c
> index 71ac271..5128911 100644
> --- a/cgroup.c
> +++ b/cgroup.c
> @@ -38,7 +38,6 @@ static unsigned int n_sets;
>  static CgSetEntry **rst_sets;
>  static unsigned int n_controllers;
>  static CgControllerEntry **controllers;
> -static char *cg_yard;
>  static struct cg_set *root_cgset; /* Set root item lives in */
>  static struct cg_set *criu_cgset; /* Set criu process lives in */
>  static u32 cg_set_ids = 1;
> @@ -654,13 +653,7 @@ int prepare_task_cgroup(struct pstree_item *me)
>  
>  void fini_cgroup(void)
>  {
> -	if (!cg_yard)
> -		return;
> -
>  	close_service_fd(CGROUP_YARD);
> -	umount2(cg_yard, MNT_DETACH);
> -	rmdir(cg_yard);
> -	xfree(cg_yard);
>  }
>  
>  static int prepare_cgroup_dirs(char *paux, size_t off, CgroupDirEntry **ents, size_t n_ents)
> @@ -706,6 +699,7 @@ static int prepare_cgroup_sfd(CgroupEntry *ce)
>  {
>  	int off, i;
>  	char paux[PATH_MAX];
> +	char *cg_yard;
>  
>  	pr_info("Preparing cgroups yard\n");
>  
> @@ -792,6 +786,12 @@ static int prepare_cgroup_sfd(CgroupEntry *ce)

O_o should the umount2 happen here? Or at least open_detach_mount()?

>  	return 0;
>  
>  err:
> +	if (cg_yard) {
> +		umount2(cg_yard, MNT_DETACH);
> +		rmdir(cg_yard);
> +		xfree(cg_yard);
> +	}
> +
>  	fini_cgroup();
>  	return -1;
>  }
> 



More information about the CRIU mailing list