From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41331) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ayeva-0007bz-Cy for qemu-devel@nongnu.org; Fri, 06 May 2016 08:32:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ayevO-0003V0-Ql for qemu-devel@nongnu.org; Fri, 06 May 2016 08:32:12 -0400 Date: Fri, 6 May 2016 14:31:29 +0200 From: Kevin Wolf Message-ID: <20160506123129.GE5093@noname.redhat.com> References: <1462406126-22946-1-git-send-email-eblake@redhat.com> <1462406126-22946-6-git-send-email-eblake@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1462406126-22946-6-git-send-email-eblake@redhat.com> Subject: Re: [Qemu-devel] [PATCH v6 05/20] block: Introduce byte-based aio read/write List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, Max Reitz 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 > --- > 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