[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [PATCH 32/56] block: Add return value for bdrv_flush_all()
From: |
Michael Roth |
Subject: |
[Qemu-stable] [PATCH 32/56] block: Add return value for bdrv_flush_all() |
Date: |
Tue, 13 Aug 2013 10:10:56 -0500 |
From: Kevin Wolf <address@hidden>
bdrv_flush() can fail, and bdrv_flush_all() should return an error as
well if this happens for a block device. It returns the first error
return now, but still at least tries to flush the remaining devices even
in error cases.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
(cherry picked from commit f0f0fdfeec6c67ad374114ecc4b3e3ccde5e94d2)
Signed-off-by: Michael Roth <address@hidden>
---
block.c | 10 ++++++++--
include/block/block.h | 2 +-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index c7c3e06..d338a20 100644
--- a/block.c
+++ b/block.c
@@ -2907,13 +2907,19 @@ int bdrv_get_flags(BlockDriverState *bs)
return bs->open_flags;
}
-void bdrv_flush_all(void)
+int bdrv_flush_all(void)
{
BlockDriverState *bs;
+ int result = 0;
QTAILQ_FOREACH(bs, &bdrv_states, list) {
- bdrv_flush(bs);
+ int ret = bdrv_flush(bs);
+ if (ret < 0 && !result) {
+ result = ret;
+ }
}
+
+ return result;
}
int bdrv_has_zero_init(BlockDriverState *bs)
diff --git a/include/block/block.h b/include/block/block.h
index 1251c5c..4bc51d5 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -276,7 +276,7 @@ void bdrv_clear_incoming_migration_all(void);
/* Ensure contents are flushed to disk. */
int bdrv_flush(BlockDriverState *bs);
int coroutine_fn bdrv_co_flush(BlockDriverState *bs);
-void bdrv_flush_all(void);
+int bdrv_flush_all(void);
void bdrv_close_all(void);
void bdrv_drain_all(void);
--
1.7.9.5
- [Qemu-stable] [PATCH 27/56] qapi: qapi-commands: fix possible leaks on visitor dealloc, (continued)
- [Qemu-stable] [PATCH 27/56] qapi: qapi-commands: fix possible leaks on visitor dealloc, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 31/56] iscsi: assert that sectors are aligned to LUN blocksize, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 30/56] iscsi: remove support for misaligned nb_sectors in aio_readv, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 28/56] ahci: Fix FLUSH command, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 26/56] seccomp: add the asynchronous I/O syscalls to the whitelist, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 36/56] gtk: don't use g_object_unref on GdkCursor, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 35/56] megasas: Legacy command line handling fix, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 37/56] gtk: Fix compiler warning (GTK 3 deprecated function), Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 42/56] virtio-console: Use exitfn for virtserialport, too, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 38/56] dataplane: refuse to start if device is already in use, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 32/56] block: Add return value for bdrv_flush_all(),
Michael Roth <=
- [Qemu-stable] [PATCH 39/56] xhci: handle USB_RET_IOERROR, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 33/56] cpus: Add return value for vm_stop(), Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 40/56] qemu-char: Register ring buffer driver with correct name "ringbuf", Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 41/56] qapi: Rename ChardevBackend member "memory" to "ringbuf", Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 43/56] pci-bridge: update mappings for migration/restore, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 34/56] cpus: Let vm_stop[_force_state]() always flush block devices, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 45/56] chardev: fix CHR_EVENT_OPENED events for mux chardevs, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 54/56] dataplane: sync virtio.c and vring.c virtqueue state, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 55/56] virtio: clear signalled_used_valid when switching from dataplane, Michael Roth, 2013/08/13
- [Qemu-stable] [PATCH 49/56] target-i386: Fix X86CPU error handling, Michael Roth, 2013/08/13