On 05/13/2016 08:38 AM, Max Reitz wrote: > On 04.05.2016 11:39, Kevin Wolf wrote: >> This changes the mirror block job to use the job's BlockBackend for >> performing its I/O. job->bs isn't used by the mirroring code any more >> afterwards. >> >> Signed-off-by: Kevin Wolf >> --- >> @@ -156,8 +156,8 @@ static void mirror_read_complete(void *opaque, int ret) >> mirror_iteration_done(op, ret); >> return; >> } >> - bdrv_aio_writev(s->target, op->sector_num, &op->qiov, op->nb_sectors, >> - mirror_write_complete, op); >> + blk_aio_writev(s->target, op->sector_num, &op->qiov, op->nb_sectors, >> + mirror_write_complete, op); > > Or maybe the rest doesn't look so good after all. We don't have this > function anymore, I'm afraid. Relatively mechanical conversion to blk_aio_pwritev(s->target, op->sector_num << BDRV_SECTOR_BITS, &op->qiov, 0, mirror_write_complete, op) although switching away from sectors to bytes in general is a bigger cleanup -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org