• E
    nbd: Implement NBD_CMD_WRITE_ZEROES on client · fa778fff
    Eric Blake 提交于
    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: NEric Blake <eblake@redhat.com>
    Message-Id: <1476469998-28592-17-git-send-email-eblake@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    fa778fff
nbd.c 18.1 KB