From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57040) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UF1AA-0004fZ-5n for qemu-devel@nongnu.org; Mon, 11 Mar 2013 07:45:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UF1A1-0007Ly-LO for qemu-devel@nongnu.org; Mon, 11 Mar 2013 07:45:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49618) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UF1A1-0007Jt-EM for qemu-devel@nongnu.org; Mon, 11 Mar 2013 07:44:57 -0400 Message-ID: <513DC3AF.8030104@redhat.com> Date: Mon, 11 Mar 2013 12:44:47 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <513DAC5B.5000607@dlhnet.de> <513DAF15.4030000@redhat.com> <74DFB48B-A0B9-49CF-AD04-477BFA275845@dlhnet.de> In-Reply-To: <74DFB48B-A0B9-49CF-AD04-477BFA275845@dlhnet.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/3] iscsi_truncate: ensure there are no requests in flight List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Lieven Cc: Kevin Wolf , Jeff Cody , "qemu-devel@nongnu.org" , Anthony Liguori Il 11/03/2013 11:19, Peter Lieven ha scritto: > > Am 11.03.2013 um 11:16 schrieb Paolo Bonzini : > >> Il 11/03/2013 11:05, Peter Lieven ha scritto: >>> ensure that there are no pending I/Os before calling >>> the sync readcapacity commands. the block_resize monitor >>> command will also flush all I/O, but double check in >>> case iscsi_truncate() is called from elsewhere in the >>> future. >>> >>> Signed-off-by: Peter Lieven >>> --- >>> block/iscsi.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/block/iscsi.c b/block/iscsi.c >>> index 3d52921..de20d53 100644 >>> --- a/block/iscsi.c >>> +++ b/block/iscsi.c >>> @@ -1167,6 +1167,10 @@ static int iscsi_truncate(BlockDriverState *bs, >>> int64_t offset) >>> return -ENOTSUP; >>> } >>> >>> + /* ensure all async requests are completed before executing >>> + * a sync readcapacity */ >>> + bdrv_drain_all(); >>> + >>> if ((ret = iscsi_readcapacity_sync(iscsilun)) != 0) { >>> return ret; >>> } >> >> NACK to this patch. It would be a bug, let's fix it properly. > > ok, are you sure that never ever will some new feature call bdrv_truncate() on an iscsi > device? I'm sure some new feature _will_ call bdrv_truncate(). But as things stand now, it would be a bug to do so on an iSCSI device. For example, qcow1 (and VHDX) will already call it, but that's a bug and should be fixed otherwise. Your patch will just cause an assertion failure. Paolo > otherwise the real fix would be to implement async read capacity commands like it > the first patch version for iscsi_truncate(). > > Peter > > >> >> The other two are fine, however. >> >> Paolo >