[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v10 04/31] tools/libxl: Introduce new helper function dup_fd_helper()



On Mon, Feb 22, 2016 at 10:52:08AM +0800, Wen Congyang wrote:
> It is pure refactoring and no functional changes.
> 
> Signed-off-by: Wen Congyang <wency@xxxxxxxxxxxxxx>

Assuming this is going to be used later:

Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

> ---
>  tools/libxl/libxl_save_callout.c | 24 ++++++++++++++++--------
>  1 file changed, 16 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/libxl/libxl_save_callout.c 
> b/tools/libxl/libxl_save_callout.c
> index 7f1f5d4..a885504 100644
> --- a/tools/libxl/libxl_save_callout.c
> +++ b/tools/libxl/libxl_save_callout.c
> @@ -118,6 +118,21 @@ void libxl__save_helper_init(libxl__save_helper_state 
> *shs)
>  }
>  
>  /*----- helper execution -----*/
> +static int dup_fd_helper(libxl__gc *gc, int fd, const char *what)
> +{
> +    int dup_fd = fd;
> +
> +    if (fd <= 2) {
> +        dup_fd = dup(fd);
> +        if (dup_fd < 0) {
> +            LOGE(ERROR,"dup %s", what);
> +            exit(-1);
> +        }
> +    }
> +    libxl_fd_set_cloexec(CTX, dup_fd, 0);
> +
> +    return dup_fd;
> +}
>  
>  /*
>   * Both save and restore share four parameters:
> @@ -186,14 +201,7 @@ static void run_helper(libxl__egc *egc, 
> libxl__save_helper_state *shs,
>  
>      pid_t pid = libxl__ev_child_fork(gc, &shs->child, helper_exited);
>      if (!pid) {
> -        if (stream_fd <= 2) {
> -            stream_fd = dup(stream_fd);
> -            if (stream_fd < 0) {
> -                LOGE(ERROR,"dup migration stream fd");
> -                exit(-1);
> -            }
> -        }
> -        libxl_fd_set_cloexec(CTX, stream_fd, 0);
> +        stream_fd = dup_fd_helper(gc, stream_fd, "migration stream fd");
>          *stream_fd_arg = GCSPRINTF("%d", stream_fd);
>  
>          for (i=0; i<num_preserve_fds; i++)
> -- 
> 2.5.0
> 
> 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.