Am 05.05.2016 um 01:55 hat Eric Blake geschrieben: > blk_aio_readv() and blk_aio_writev() are annoying in that they > can't access sub-sector granularity, and cannot pass flags. > Also, they require the caller to pass redundant information > about the size of the I/O. > > Add new blk_aio_preadv() and blk_aio_pwritev() functions to fix > the flaws. The next few patches will upgrade callers, then > finally delete the old interfaces. > > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- > include/sysemu/block-backend.h | 6 ++++++ > block/block-backend.c | 16 ++++++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h > index 851376b..8d7839c 100644 > --- a/include/sysemu/block-backend.h > +++ b/include/sysemu/block-backend.h > @@ -110,9 +110,15 @@ int64_t blk_nb_sectors(BlockBackend *blk); > BlockAIOCB *blk_aio_readv(BlockBackend *blk, int64_t sector_num, > QEMUIOVector *iov, int nb_sectors, > BlockCompletionFunc *cb, void *opaque); > +BlockAIOCB *blk_aio_preadv(BlockBackend *blk, int64_t offset, > + QEMUIOVector *iov, BdrvRequestFlags flags,
If you have to respin for some reason, I think QEMUIOVectors are commonly called qiov, whereas iov is usually the name for struct iovec. Kevin