Stefan Hajnoczi 2c0fdb4ed3 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>
(cherry picked from commit 3c5867156eb81c7c71611d078b2c5c2c863f884a)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-03-29 10:20:04 +03:00
..
2022-10-30 15:15:12 -04:00
2022-10-27 20:14:11 +02:00
2022-10-30 15:15:12 -04:00
2022-10-26 14:56:42 -04:00
2022-10-27 20:14:11 +02:00
2022-10-30 15:15:12 -04:00
2022-10-27 20:14:11 +02:00
2022-10-30 15:15:12 -04:00
2022-10-27 20:14:11 +02:00
2022-10-30 15:15:12 -04:00
2022-10-30 15:15:12 -04:00
2022-10-30 15:15:12 -04:00
2022-10-30 15:15:12 -04:00
2022-06-29 10:57:02 +03:00
2022-10-27 20:14:11 +02:00
2022-10-30 15:15:12 -04:00
2022-10-27 20:14:11 +02:00
2022-10-31 20:37:58 +00:00