提交 c6056bd1 编写于 作者: K Klaus Jensen

hw/block/nvme: commonize nvme_rw error handling

Move common error handling to a label.
Signed-off-by: NKlaus Jensen <k.jensen@samsung.com>
Reviewed-by: NKeith Busch <kbusch@kernel.org>
上级 94cbcf53
......@@ -687,20 +687,18 @@ static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
status = nvme_check_mdts(n, data_size);
if (status) {
trace_pci_nvme_err_mdts(nvme_cid(req), data_size);
block_acct_invalid(blk_get_stats(n->conf.blk), acct);
return status;
goto invalid;
}
status = nvme_check_bounds(n, ns, slba, nlb);
if (status) {
trace_pci_nvme_err_invalid_lba_range(slba, nlb, ns->id_ns.nsze);
block_acct_invalid(blk_get_stats(n->conf.blk), acct);
return status;
goto invalid;
}
if (nvme_map_dptr(n, data_size, req)) {
block_acct_invalid(blk_get_stats(n->conf.blk), acct);
return NVME_INVALID_FIELD | NVME_DNR;
status = nvme_map_dptr(n, data_size, req);
if (status) {
goto invalid;
}
if (req->qsg.nsg > 0) {
......@@ -722,6 +720,10 @@ static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
}
return NVME_NO_COMPLETE;
invalid:
block_acct_invalid(blk_get_stats(n->conf.blk), acct);
return status;
}
static uint16_t nvme_io_cmd(NvmeCtrl *n, NvmeRequest *req)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册