diff options
author | Eric Blake <eblake@redhat.com> | 2020-07-06 15:39:45 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2020-07-14 15:18:59 +0200 |
commit | 4e2f4418784da09cb106264340241856cd2846df (patch) | |
tree | f76b995a6d8248b4a8be9b337b802b12d88bca01 /block.c | |
parent | ffa244c84a1a30dff69ecc80b0137a2b6d428ecb (diff) |
qemu-img: Flush stdout before before potential stderr messages
During 'qemu-img create ... 2>&1', if --quiet is not in force, we can
end up with buffered I/O in stdout that was produced before failure,
but which appears in output after failure. This is confusing; the fix
is to flush stdout prior to attempting anything that might produce an
error message. Several iotests demonstrate the resulting ordering
change now that the merged outputs now reflect chronology. (An even
better fix would be to avoid printf from within block.c altogether,
but that's much more invasive...)
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200706203954.341758-2-eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block.c')
-rw-r--r-- | block.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -6164,6 +6164,7 @@ void bdrv_img_create(const char *filename, const char *fmt, printf("Formatting '%s', fmt=%s ", filename, fmt); qemu_opts_print(opts, " "); puts(""); + fflush(stdout); } ret = bdrv_create(drv, filename, opts, &local_err); |