]> git.proxmox.com Git - mirror_qemu.git/commit
block: Return -ENOTSUP rather than assert on unaligned discards
authorEric Blake <eblake@redhat.com>
Thu, 17 Nov 2016 20:13:57 +0000 (14:13 -0600)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Mon, 12 Dec 2016 23:48:43 +0000 (17:48 -0600)
commit5e4eb851ddc5c7c23c0c5705fbf917b7b3a20586
treed41404273b53b28c47e06c03ac127ec49d39ac96
parentdd11d33deb8350fd2599220bf3bb79eef8547a24
block: Return -ENOTSUP rather than assert on unaligned discards

Right now, the block layer rounds discard requests, so that
individual drivers are able to assert that discard requests
will never be unaligned.  But there are some ISCSI devices
that track and coalesce multiple unaligned requests, turning it
into an actual discard if the requests eventually cover an
entire page, which implies that it is better to always pass
discard requests as low down the stack as possible.

In isolation, this patch has no semantic effect, since the
block layer currently never passes an unaligned request through.
But the block layer already has code that silently ignores
drivers that return -ENOTSUP for a discard request that cannot
be honored (as well as drivers that return 0 even when nothing
was done).  But the next patch will update the block layer to
fragment discard requests, so that clients are guaranteed that
they are either dealing with an unaligned head or tail, or an
aligned core, making it similar to the block layer semantics of
write zero fragmentation.

CC: qemu-stable@nongnu.org
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 49228d1e95e1be879c57f5dbccb44405670e343d)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
block/iscsi.c
block/qcow2.c
block/sheepdog.c