This is what exec_close does. Move this to the underlying QEMUFile. Signed-off-by: Paolo Bonzini <pbonz...@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; -- 1.7.1