diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2023-02-07 15:37:16 -0500 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2023-02-09 10:22:30 -0500 |
commit | 3c5867156eb81c7c71611d078b2c5c2c863f884a (patch) | |
tree | 5c489e5cb88525417e5b48917e01f49b37cb26b0 /include/hw/intc | |
parent | 1f433e84c3f3ddda90ba235e65b99ef1112f48c7 (diff) | |
download | qemu-3c5867156eb81c7c71611d078b2c5c2c863f884a.zip qemu-3c5867156eb81c7c71611d078b2c5c2c863f884a.tar.gz qemu-3c5867156eb81c7c71611d078b2c5c2c863f884a.tar.bz2 |
block: fix detect-zeroes= with BDRV_REQ_REGISTERED_BUF
When a write request is converted into a write zeroes request by the
detect-zeroes= feature, it is no longer associated with an I/O buffer.
The BDRV_REQ_REGISTERED_BUF flag doesn't make sense without an I/O
buffer and must be cleared because bdrv_co_do_pwrite_zeroes() fails with
-EINVAL when it's set.
Fiona Ebner <f.ebner@proxmox.com> bisected and diagnosed this QEMU 7.2
regression where writes containing zeroes to a blockdev with
discard=unmap,detect-zeroes=unmap fail.
Buglink: https://gitlab.com/qemu-project/qemu/-/issues/1404
Fixes: e8b6535533be ("block: add BDRV_REQ_REGISTERED_BUF request flag")
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Cc: qemu-stable@nongnu.org
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20230207203719.242926-2-stefanha@redhat.com>
Diffstat (limited to 'include/hw/intc')
0 files changed, 0 insertions, 0 deletions