[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [RFC PULL 1/6] virtio-blk: add acct_failed param to virtio_
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-block] [RFC PULL 1/6] virtio-blk: add acct_failed param to virtio_blk_handle_rw_error() |
Date: |
Tue, 12 Feb 2019 22:03:25 +0800 |
From: Stefano Garzarella <address@hidden>
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>
Acked-by: Pankaj Gupta <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <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 9a87b3bfac..b2bb129efa 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -61,7 +61,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)
{
BlockErrorAction action = blk_get_error_action(req->dev->blk,
is_read, error);
@@ -75,7 +75,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);
}
@@ -113,7 +115,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;
}
}
@@ -132,7 +134,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-block] [RFC PULL 0/6] Block pull request for testing, Stefan Hajnoczi, 2019/02/12
- [Qemu-block] [RFC PULL 1/6] virtio-blk: add acct_failed param to virtio_blk_handle_rw_error(),
Stefan Hajnoczi <=
- [Qemu-block] [RFC PULL 2/6] virtio-blk: add host_features field in VirtIOBlock, Stefan Hajnoczi, 2019/02/12
- [Qemu-block] [RFC PULL 5/6] tests/virtio-blk: change assert on data_size in virtio_blk_request(), Stefan Hajnoczi, 2019/02/12
- [Qemu-block] [RFC PULL 3/6] virtio-blk: add "discard" and "write-zeroes" properties, Stefan Hajnoczi, 2019/02/12
- [Qemu-block] [RFC PULL 4/6] virtio-blk: add DISCARD and WRITE_ZEROES features, Stefan Hajnoczi, 2019/02/12
- [Qemu-block] [RFC PULL 6/6] tests/virtio-blk: add test for WRITE_ZEROES command, Stefan Hajnoczi, 2019/02/12