[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 01/10] virtio-blk: add acct_failed param to virti
From: |
Stefano Garzarella |
Subject: |
[Qemu-devel] [PATCH v6 01/10] virtio-blk: add acct_failed param to virtio_blk_handle_rw_error() |
Date: |
Thu, 21 Feb 2019 11:33:05 +0100 |
We add acct_failed param in order to use virtio_blk_handle_rw_error()
also when is not required to call block_acct_failed(). (eg. a discard
operation is failed)
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefano Garzarella <address@hidden>
---
hw/block/virtio-blk.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index cf7f47eaba..afedf48ca6 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -65,7 +65,7 @@ static void virtio_blk_req_complete(VirtIOBlockReq *req,
unsigned char status)
}
static int virtio_blk_handle_rw_error(VirtIOBlockReq *req, int error,
- bool is_read)
+ bool is_read, bool acct_failed)
{
VirtIOBlock *s = req->dev;
BlockErrorAction action = blk_get_error_action(s->blk, is_read, error);
@@ -78,7 +78,9 @@ static int virtio_blk_handle_rw_error(VirtIOBlockReq *req,
int error,
s->rq = req;
} else if (action == BLOCK_ERROR_ACTION_REPORT) {
virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR);
- block_acct_failed(blk_get_stats(s->blk), &req->acct);
+ if (acct_failed) {
+ block_acct_failed(blk_get_stats(s->blk), &req->acct);
+ }
virtio_blk_free_request(req);
}
@@ -116,7 +118,7 @@ static void virtio_blk_rw_complete(void *opaque, int ret)
* the memory until the request is completed (which will
* happen on the other side of the migration).
*/
- if (virtio_blk_handle_rw_error(req, -ret, is_read)) {
+ if (virtio_blk_handle_rw_error(req, -ret, is_read, true)) {
continue;
}
}
@@ -135,7 +137,7 @@ static void virtio_blk_flush_complete(void *opaque, int ret)
aio_context_acquire(blk_get_aio_context(s->conf.conf.blk));
if (ret) {
- if (virtio_blk_handle_rw_error(req, -ret, 0)) {
+ if (virtio_blk_handle_rw_error(req, -ret, 0, true)) {
goto out;
}
}
--
2.20.1
- [Qemu-devel] [PATCH v6 00/10] virtio-blk: add DISCARD and WRITE_ZEROES features, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 02/10] virtio-blk: add host_features field in VirtIOBlock, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 01/10] virtio-blk: add acct_failed param to virtio_blk_handle_rw_error(),
Stefano Garzarella <=
- [Qemu-devel] [PATCH v6 03/10] virtio-blk: add "discard" and "write-zeroes" properties, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 04/10] virtio-net: make VirtIOFeature usable for other virtio devices, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 07/10] tests/virtio-blk: change assert on data_size in virtio_blk_request(), Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 06/10] virtio-blk: add DISCARD and WRITE_ZEROES features, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 08/10] tests/virtio-blk: add virtio_blk_fix_dwz_hdr() function, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 05/10] virtio-blk: set config size depending on the features enabled, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 09/10] tests/virtio-blk: add test for WRITE_ZEROES command, Stefano Garzarella, 2019/02/21
- [Qemu-devel] [PATCH v6 10/10] tests/virtio-blk: add test for DISCARD command, Stefano Garzarella, 2019/02/21
- Re: [Qemu-devel] [PATCH v6 00/10] virtio-blk: add DISCARD and WRITE_ZEROES features, Stefan Hajnoczi, 2019/02/22