On 06/21/2016 03:21 AM, Kevin Wolf wrote: > The blkreplay driver only forwards the requests it gets, so converting > it to byte granularity is trivial. > > Signed-off-by: Kevin Wolf > --- > block/blkreplay.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > > -static int coroutine_fn blkreplay_co_writev(BlockDriverState *bs, > - int64_t sector_num, int nb_sectors, QEMUIOVector *qiov) > +static int coroutine_fn blkreplay_co_pwritev(BlockDriverState *bs, > + uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags) > { > uint64_t reqid = request_id++; > - int ret = bdrv_co_writev(bs->file->bs, sector_num, nb_sectors, qiov); > + int ret = bdrv_co_pwritev(bs->file->bs, offset, bytes, qiov, flags); This would pass flags through, but fails to set .supported_write_flags, so the caller will always pass flags=0. I think you want to set .supported_write_flags during open; but see my recent patch about the raw driver only setting flags according to the underlying device: https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg05823.html -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org