On Wed, May 19, 2021 at 4:28 PM Peter Lieven <p...@kamp.de> wrote: > > Signed-off-by: Peter Lieven <p...@kamp.de> > --- > block/rbd.c | 37 ++++++++++++++++++++++++++++++++++++- > 1 file changed, 36 insertions(+), 1 deletion(-) > > diff --git a/block/rbd.c b/block/rbd.c > index 0d8612a988..ee13f08a74 100644 > --- a/block/rbd.c > +++ b/block/rbd.c > @@ -63,7 +63,8 @@ typedef enum { > RBD_AIO_READ, > RBD_AIO_WRITE, > RBD_AIO_DISCARD, > - RBD_AIO_FLUSH > + RBD_AIO_FLUSH, > + RBD_AIO_WRITE_ZEROES > } RBDAIOCmd; > > typedef struct BDRVRBDState { > @@ -705,6 +706,10 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict > *options, int flags, > } > } > > +#ifdef LIBRBD_SUPPORTS_WRITE_ZEROES > + bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP;
I wonder if we should also set BDRV_REQ_NO_FALLBACK here since librbd does not really have a notion of non-efficient explicit zeroing. Thanks, Ilya