[Devel] [PATCH VZ10 v3 0/5] vhost-blk: fix protocol handling and backend setup

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Tue Aug 25 15:51:47 MSK 2026


This series fixes several vhost-blk bugs and harden some userspace
interactions.

First patch hardens VIRTIO_BLK_T_GET_ID. Leave the serial empty and
copy the null terminator, just as QEMU.

The second patch reports the correct used-ring length: the number of
bytes written to the guest, including status.

The third patch fixes flush. REQ_OP_FLUSH is not a valid bio op; use
REQ_OP_WRITE | REQ_PREFLUSH as blkdev_issue_flush() does.

The fourth patch fixes sector alignment checks. SECTOR_MASK is 7, not
a bitmask, so the code was checking 8-byte alignment. Use
IS_ALIGNED(val, SECTOR_SIZE).

The last patch reworks queue/backend setup. vhost_blk_setup() silently
ignored a changed vq->num once requests were allocated and
double-fetched user input. Request allocation is now tied to backend
existence, and drop_backend/flush/fput are consolidated.

Reviewed-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>

v2:
 - Fix patch fixing used-ring length: only include req->len in read
requests.

v3:
 - Changed alignment checks to IS_ALIGNED macro.

Andrey Zhadchenko (5):
  drivers/vhost/blk: harden get_id command
  drivers/vhost/blk: report correct used-ring lengths
  drivers/vhost/blk: fix flush support
  drivers/vhost/blk: fix sector alignment calculation
  drivers/vhost/blk: rework queue/backend setup

 drivers/vhost/blk.c | 167 +++++++++++++++++++++-----------------------
 1 file changed, 78 insertions(+), 89 deletions(-)

-- 
2.43.5



More information about the Devel mailing list