On 10/31/2016 09:37 AM, Paolo Bonzini wrote:
> From: Eric Blake <ebl...@redhat.com>
> 
> Upstream NBD protocol recently added the ability to efficiently
> write zeroes without having to send the zeroes over the wire,
> along with a flag to control whether the client wants a hole.
> 
> The generic block code takes care of falling back to the obvious
> write of lots of zeroes if we return -ENOTSUP because the server
> does not have WRITE_ZEROES.
> 
> Ideally, since NBD_CMD_WRITE_ZEROES does not involve any data
> over the wire, we want to support transactions that are much
> larger than the normal 32M limit imposed on NBD_CMD_WRITE.  But
> the server may still have a limit smaller than UINT_MAX, so
> until experimental NBD protocol additions for advertising various
> command sizes is finalized (see [1], [2]), for now we just stick to
> the same limits as normal writes.
> 
> [1] https://github.com/yoe/nbd/blob/extension-info/doc/proto.md
> [2] https://sourceforge.net/p/nbd/mailman/message/35081223/
> 
> Signed-off-by: Eric Blake <ebl...@redhat.com>
> Message-Id: <1476469998-28592-17-git-send-email-ebl...@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> ---
>  block/nbd-client.c | 35 +++++++++++++++++++++++++++++++++++
>  block/nbd-client.h |  2 ++
>  block/nbd.c        |  4 ++++
>  3 files changed, 41 insertions(+)

This patch went through so much rebasing that I failed to realize it was
originally written prior to adding commit 465fe887 with its
bs->supported_zero_flags.  As such, the block layer eats flags and never
allows the server to perform FUA or do an unmap.  I'll be posting a
followup for inclusion in 2.8, alongside my other pending patches (I
found it because of blkdebug enhancements that I'm writing, although the
blkdebug changes themselves are 2.9 material).

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to