diff mbox

[v10,04/31] tools/libxl: Introduce new helper function dup_fd_helper()

Message ID 1456109555-28299-5-git-send-email-wency@cn.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wen Congyang Feb. 22, 2016, 2:52 a.m. UTC
It is pure refactoring and no functional changes.

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
 tools/libxl/libxl_save_callout.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

Comments

Wei Liu Feb. 25, 2016, 3:53 p.m. UTC | #1
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@cn.fujitsu.com>

Assuming this is going to be used later:

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

> ---
>  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
> 
> 
>
diff mbox

Patch

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++)