[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 9/9] block: for HMP commit() operations on 'all', sk
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 9/9] block: for HMP commit() operations on 'all', skip non-COW drives |
Date: |
Mon, 4 Mar 2013 10:15:31 +0100 |
From: Jeff Cody <address@hidden>
During a commit of 'all' using the HMP non-live commit, the operation
is aborted and returns error on the first error enountered. When
non-COW drives are in use (e.g. ejected floppy, cdrom, or drives without
a backing parent), that means a commit all will return an error of either
-ENOMEDIUM or -ENOTSUP. This is not desirable, so for the 'all' commit
case, only attempt the commit if both bs->drv and bs->backing_hd are
present.
More succinctly: 'commit all' now means a commit on all COW drives.
This means an individual commit to a specific non-COW drive will still
return the appropriate error (-ENOMEDIUM if eject / not present, -ENOTSUP
if no backing file).
Reported-by: Jan Kiszka <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index 4582961..124a9eb 100644
--- a/block.c
+++ b/block.c
@@ -1640,9 +1640,11 @@ int bdrv_commit_all(void)
BlockDriverState *bs;
QTAILQ_FOREACH(bs, &bdrv_states, list) {
- int ret = bdrv_commit(bs);
- if (ret < 0) {
- return ret;
+ if (bs->drv && bs->backing_hd) {
+ int ret = bdrv_commit(bs);
+ if (ret < 0) {
+ return ret;
+ }
}
}
return 0;
--
1.8.1.4
- Re: [Qemu-devel] [PATCH 3/9] dataplane: remove EventPoll in favor of AioContext, (continued)
[Qemu-devel] [PATCH 1/9] ide/macio: Fix macio DMA initialisation., Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 2/9] virtio-blk: fix unplug + virsh reboot, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 5/9] move socket_set_nodelay to osdep.c, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 4/9] slirp/tcp_subr.c: fix coding style in tcp_connect, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 6/9] sheepdog: accept URIs, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 7/9] sheepdog: use inet_connect to simplify connect code, Stefan Hajnoczi, 2013/03/04
[Qemu-devel] [PATCH 9/9] block: for HMP commit() operations on 'all', skip non-COW drives,
Stefan Hajnoczi <=
[Qemu-devel] [PATCH 8/9] sheepdog: add support for connecting to unix domain socket, Stefan Hajnoczi, 2013/03/04