[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 09/12] block/export: fix vhost-user-blk export sector number c
From: |
Stefan Hajnoczi |
Subject: |
[PATCH v3 09/12] block/export: fix vhost-user-blk export sector number calculation |
Date: |
Tue, 23 Feb 2021 14:46:50 +0000 |
The driver is supposed to honor the blk_size field but the protocol
still uses 512-byte sector numbers. It is incorrect to multiply
req->sector_num by blk_size.
VIRTIO 1.1 5.2.5 Device Initialization says:
blk_size can be read to determine the optimal sector size for the
driver to use. This does not affect the units used in the protocol
(always 512 bytes), but awareness of the correct value can affect
performance.
Fixes: 3578389bcf76c824a5d82e6586a6f0c71e56f2aa ("block/export: vhost-user
block device backend server")
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
block/export/vhost-user-blk-server.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/export/vhost-user-blk-server.c
b/block/export/vhost-user-blk-server.c
index 2614a63791..f74796241c 100644
--- a/block/export/vhost-user-blk-server.c
+++ b/block/export/vhost-user-blk-server.c
@@ -144,7 +144,7 @@ static void coroutine_fn vu_blk_virtio_process_req(void
*opaque)
break;
}
- int64_t offset = req->sector_num * vexp->blk_size;
+ int64_t offset = req->sector_num << VIRTIO_BLK_SECTOR_BITS;
QEMUIOVector qiov;
if (is_write) {
qemu_iovec_init_external(&qiov, out_iov, out_num);
--
2.29.2
- [PATCH v3 00/12] block/export: vhost-user-blk server tests and input validation, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 04/12] libqtest: add qtest_remove_abrt_handler(), Stefan Hajnoczi, 2021/02/23
- [PATCH v3 09/12] block/export: fix vhost-user-blk export sector number calculation,
Stefan Hajnoczi <=
- [PATCH v3 01/12] vhost-user-blk: fix blkcfg->num_queues endianness, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 07/12] block/export: fix blk_size double byteswap, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 02/12] libqtest: add qtest_socket_server(), Stefan Hajnoczi, 2021/02/23
- [PATCH v3 03/12] libqtest: add qtest_kill_qemu(), Stefan Hajnoczi, 2021/02/23
- [PATCH v3 10/12] block/export: port virtio-blk discard/write zeroes input validation, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 08/12] block/export: use VIRTIO_BLK_SECTOR_BITS, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 12/12] block/export: port virtio-blk read/write range check, Stefan Hajnoczi, 2021/02/23
- [PATCH v3 06/12] tests/qtest: add multi-queue test case to vhost-user-blk-test, Stefan Hajnoczi, 2021/02/23