[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 03/20] hw/block/nvme: consider metadata read aio return value in c
From: |
Klaus Jensen |
Subject: |
[PULL 03/20] hw/block/nvme: consider metadata read aio return value in compare |
Date: |
Mon, 17 May 2021 11:17:20 +0200 |
From: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Currently in compare command metadata aio read blk_aio_preadv return
value ignored. Consider it and complete the block accounting.
Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Fixes: 0a384f923f51 ("hw/block/nvme: add compare command")
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/block/nvme.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index cd594280a7f9..67abc9eb2c24 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -2369,10 +2369,19 @@ static void nvme_compare_mdata_cb(void *opaque, int ret)
uint32_t reftag = le32_to_cpu(rw->reftag);
struct nvme_compare_ctx *ctx = req->opaque;
g_autofree uint8_t *buf = NULL;
+ BlockBackend *blk = ns->blkconf.blk;
+ BlockAcctCookie *acct = &req->acct;
+ BlockAcctStats *stats = blk_get_stats(blk);
uint16_t status = NVME_SUCCESS;
trace_pci_nvme_compare_mdata_cb(nvme_cid(req));
+ if (ret) {
+ block_acct_failed(stats, acct);
+ nvme_aio_err(req, ret);
+ goto out;
+ }
+
buf = g_malloc(ctx->mdata.iov.size);
status = nvme_bounce_mdata(n, buf, ctx->mdata.iov.size,
@@ -2421,6 +2430,8 @@ static void nvme_compare_mdata_cb(void *opaque, int ret)
goto out;
}
+ block_acct_done(stats, acct);
+
out:
qemu_iovec_destroy(&ctx->data.iov);
g_free(ctx->data.bounce);
--
2.31.1
- [PULL 00/20] emulated nvme updates, Klaus Jensen, 2021/05/17
- [PULL 01/20] hw/block/nvme: remove redundant invalid_lba_range trace, Klaus Jensen, 2021/05/17
- [PULL 02/20] hw/block/nvme: rename reserved fields declarations, Klaus Jensen, 2021/05/17
- [PULL 03/20] hw/block/nvme: consider metadata read aio return value in compare,
Klaus Jensen <=
- [PULL 04/20] hw/block/nvme: fix io-command set profile feature, Klaus Jensen, 2021/05/17
- [PULL 05/20] hw/block/nvme: function formatting fix, Klaus Jensen, 2021/05/17
- [PULL 06/20] hw/block/nvme: align with existing style, Klaus Jensen, 2021/05/17
- [PULL 07/20] hw/block/nvme: rename __nvme_zrm_open, Klaus Jensen, 2021/05/17
- [PULL 08/20] hw/block/nvme: rename __nvme_advance_zone_wp, Klaus Jensen, 2021/05/17
- [PULL 11/20] hw/block/nvme: cleanup includes, Klaus Jensen, 2021/05/17
- [PULL 13/20] hw/block/nvme: replace nvme_ns_status, Klaus Jensen, 2021/05/17
- [PULL 09/20] hw/block/nvme: rename __nvme_select_ns_iocs, Klaus Jensen, 2021/05/17
- [PULL 10/20] hw/block/nvme: consolidate header files, Klaus Jensen, 2021/05/17
- [PULL 12/20] hw/block/nvme: remove non-shared defines from header file, Klaus Jensen, 2021/05/17