From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55413) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avz3M-0004g7-Op for qemu-devel@nongnu.org; Thu, 28 Apr 2016 23:25:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avz3L-0003iT-V2 for qemu-devel@nongnu.org; Thu, 28 Apr 2016 23:25:16 -0400 Date: Fri, 29 Apr 2016 11:25:15 +0800 From: Fam Zheng Message-ID: <20160429032515.GG1421@ad.usersys.redhat.com> References: <1461849406-29743-1-git-send-email-kwolf@redhat.com> <1461849406-29743-4-git-send-email-kwolf@redhat.com> <20160429012203.GD1421@ad.usersys.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160429012203.GD1421@ad.usersys.redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 03/17] block: Support AIO drivers in bdrv_driver_preadv/pwritev() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org, sw@weilnetz.de, stefanha@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com On Fri, 04/29 09:22, Fam Zheng wrote: > > @@ -125,19 +119,13 @@ void bdrv_io_limits_update_group(BlockDriverState *bs, const char *group) > > > > void bdrv_setup_io_funcs(BlockDriver *bdrv) > > { > > - /* Block drivers without coroutine functions need emulation */ > > - if (!bdrv->bdrv_co_readv) { > > - bdrv->bdrv_co_readv = bdrv_co_readv_em; > > - bdrv->bdrv_co_writev = bdrv_co_writev_em; > > - > > - /* bdrv_co_readv_em()/brdv_co_writev_em() work in terms of aio, so if > > - * the block driver lacks aio we need to emulate that too. > > - */ > > - if (!bdrv->bdrv_aio_readv) { > > - /* add AIO emulation layer */ > > - bdrv->bdrv_aio_readv = bdrv_aio_readv_em; > > - bdrv->bdrv_aio_writev = bdrv_aio_writev_em; > > - } > > + /* bdrv_co_readv_em()/brdv_co_writev_em() work in terms of aio, so if > > + * the block driver lacks aio we need to emulate that. > > + */ > > + if (!bdrv->bdrv_aio_readv) { > > I'd also AND with !bdrv->bdrv_co_readv, because in that case the em functions > are assigned but not used. Never mind, I see the last patch removes this altogether. Fam