Patchwork [31/41] qemu-file: check exit status when closing a pipe QEMUFile

login
register
mail settings
Submitter Paolo Bonzini
Date Feb. 15, 2013, 5:47 p.m.
Message ID <1360950433-17106-32-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/220822/
State New
Headers show

Comments

Paolo Bonzini - Feb. 15, 2013, 5:47 p.m.
This is what exec_close does.  Move this to the underlying QEMUFile.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 migration-exec.c |    4 ----
 savevm.c         |    3 +++
 2 files changed, 3 insertions(+), 4 deletions(-)
Orit Wasserman - Feb. 21, 2013, 7:44 a.m.
On 02/15/2013 07:47 PM, Paolo Bonzini wrote:
> This is what exec_close does.  Move this to the underlying QEMUFile.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  migration-exec.c |    4 ----
>  savevm.c         |    3 +++
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/migration-exec.c b/migration-exec.c
> index 5dc7313..a2b5f8d 100644
> --- a/migration-exec.c
> +++ b/migration-exec.c
> @@ -50,10 +50,6 @@ static int exec_close(MigrationState *s)
>      ret = qemu_fclose(s->opaque);
>      s->opaque = NULL;
>      s->fd = -1;
> -    if (ret >= 0 && !(WIFEXITED(ret) && WEXITSTATUS(ret) == 0)) {
> -        /* close succeeded, but non-zero exit code: */
> -        ret = -EIO; /* fake errno value */
> -    }
>      return ret;
>  }
>  
> diff --git a/savevm.c b/savevm.c
> index 261d17a..f593acd 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -247,6 +247,9 @@ static int stdio_pclose(void *opaque)
>      ret = pclose(s->stdio_file);
>      if (ret == -1) {
>          ret = -errno;
> +    } else if (!WIFEXITED(ret) || WEXITSTATUS(ret) != 0) {
> +        /* close succeeded, but non-zero exit code: */
> +        ret = -EIO; /* fake errno value */
>      }
>      g_free(s);
>      return ret;
> 
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Juan Quintela - Feb. 22, 2013, 11:20 a.m.
Paolo Bonzini <pbonzini@redhat.com> wrote:
> This is what exec_close does.  Move this to the underlying QEMUFile.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

Patch

diff --git a/migration-exec.c b/migration-exec.c
index 5dc7313..a2b5f8d 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -50,10 +50,6 @@  static int exec_close(MigrationState *s)
     ret = qemu_fclose(s->opaque);
     s->opaque = NULL;
     s->fd = -1;
-    if (ret >= 0 && !(WIFEXITED(ret) && WEXITSTATUS(ret) == 0)) {
-        /* close succeeded, but non-zero exit code: */
-        ret = -EIO; /* fake errno value */
-    }
     return ret;
 }
 
diff --git a/savevm.c b/savevm.c
index 261d17a..f593acd 100644
--- a/savevm.c
+++ b/savevm.c
@@ -247,6 +247,9 @@  static int stdio_pclose(void *opaque)
     ret = pclose(s->stdio_file);
     if (ret == -1) {
         ret = -errno;
+    } else if (!WIFEXITED(ret) || WEXITSTATUS(ret) != 0) {
+        /* close succeeded, but non-zero exit code: */
+        ret = -EIO; /* fake errno value */
     }
     g_free(s);
     return ret;