[CRIU] [PATCH 1/3] files-reg: Refactor create_ghost()

Pavel Emelyanov xemul at parallels.com
Mon Dec 21 00:56:05 PST 2015


On 12/15/2015 04:29 PM, Kirill Tkhai wrote:
> In the most cases, file descriptor is not need in this function.
> We can use chown() instead of fchown(), and operate with a path
> directly.
> 
> The patch moves copying content of a regular file to new function
> mkreg_ghost(). This will be used in next patches.
> 
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> ---
>  files-reg.c |   42 ++++++++++++++++++++++--------------------
>  1 file changed, 22 insertions(+), 20 deletions(-)
> 
> diff --git a/files-reg.c b/files-reg.c
> index 425dc04..8469417 100644
> --- a/files-reg.c
> +++ b/files-reg.c
> @@ -94,10 +94,24 @@ static int note_link_remap(char *path, struct ns_id *nsid)
>  	return -1;
>  }
>  
> +static int mkreg_ghost(char *path, u32 mode, struct ghost_file *gf, struct cr_img *img)

The gf arg is unused here.

> +{
> +	int gfd, ret;
> +
> +	gfd = open(path, O_WRONLY | O_CREAT | O_EXCL, mode);
> +	if (gfd < 0)
> +		return -1;
> +
> +	ret = copy_file(img_raw_fd(img), gfd, 0);
> +	close(gfd);
> +
> +	return ret;
> +}
> +
>  static int create_ghost(struct ghost_file *gf, GhostFileEntry *gfe, struct cr_img *img)
>  {
> -	int gfd, ghost_flags, ret;
>  	char path[PATH_MAX];
> +	int ret;
>  
>  	ret = rst_get_mnt_root(gf->remap.rmnt_id, path, sizeof(path));
>  	if (ret < 0) {



More information about the CRIU mailing list