From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ejaqA-0003S2-O4 for qemu-devel@nongnu.org; Wed, 07 Feb 2018 20:17:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ejaq9-000135-Vw for qemu-devel@nongnu.org; Wed, 07 Feb 2018 20:17:30 -0500 Date: Thu, 8 Feb 2018 09:17:05 +0800 From: Fam Zheng Message-ID: <20180208011705.GA24289@lemon.usersys.redhat.com> References: <20180207162920.28386-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180207162920.28386-1-pbonzini@redhat.com> Subject: Re: [Qemu-devel] [PATCH] block: early check for blockers on drive-mirror List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, jsnow@redhat.com, qemu-block@nongnu.org On Wed, 02/07 17:29, Paolo Bonzini wrote: > Even if an op blocker is present for BLOCK_OP_TYPE_MIRROR_SOURCE, > it is checked a bit late and the result is that the target is > created even if drive-mirror subsequently fails. Add an early > check to avoid this. > > Signed-off-by: Paolo Bonzini > --- > blockdev.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/blockdev.c b/blockdev.c > index 8e977eef11..c7e2e0a00e 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -3565,6 +3565,11 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp) > return; > } > > + /* Early check to avoid creating target */ > + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_MIRROR_SOURCE, errp)) { > + return; > + } > + > aio_context = bdrv_get_aio_context(bs); > aio_context_acquire(aio_context); > > -- > 2.14.3 > > Reviewed-by: Fam Zheng