From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43921) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yb1pW-0007dj-Kr for qemu-devel@nongnu.org; Thu, 26 Mar 2015 03:03:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yb1pV-0006gM-Oj for qemu-devel@nongnu.org; Thu, 26 Mar 2015 03:03:50 -0400 Date: Thu, 26 Mar 2015 15:03:41 +0800 From: Fam Zheng Message-ID: <20150326070341.GH14724@ad.nay.redhat.com> References: <1427276174-9130-1-git-send-email-wency@cn.fujitsu.com> <1427276174-9130-13-git-send-email-wency@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1427276174-9130-13-git-send-email-wency@cn.fujitsu.com> Subject: Re: [Qemu-devel] [RFC PATCH COLO v2 12/13] skip nbd_target when starting block replication List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wen Congyang Cc: Kevin Wolf , Yang Hongyang , Lai Jiangshan , qemu block , Jiang Yunhong , Dong Eddie , "Dr. David Alan Gilbert" , qemu devel , Gonglei , Stefan Hajnoczi , Paolo Bonzini , Max Reitz , zhanghailiang On Wed, 03/25 17:36, Wen Congyang wrote: > Signed-off-by: Wen Congyang > Signed-off-by: zhanghailiang > Signed-off-by: Gonglei > --- > block.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/block.c b/block.c > index bd7fa9c..3af5ad4 100644 > --- a/block.c > +++ b/block.c > @@ -6368,6 +6368,12 @@ BlockAcctStats *bdrv_get_stats(BlockDriverState *bs) > void bdrv_start_replication(BlockDriverState *bs, COLOMode mode, Error **errp) > { > BlockDriver *drv = bs->drv; > + Error *local_err = NULL; > + > + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_BACKING_REFERENCE, &local_err)) { > + error_free(local_err); local_err is set but not used, just pass NULL. Same below. > + return; > + } > > if (drv && drv->bdrv_start_replication) { > drv->bdrv_start_replication(bs, mode, errp); > @@ -6381,6 +6387,12 @@ void bdrv_start_replication(BlockDriverState *bs, COLOMode mode, Error **errp) > void bdrv_do_checkpoint(BlockDriverState *bs, Error **errp) > { > BlockDriver *drv = bs->drv; > + Error *local_err = NULL; > + > + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_BACKING_REFERENCE, &local_err)) { > + error_free(local_err); > + return; > + } > > if (drv && drv->bdrv_do_checkpoint) { > drv->bdrv_do_checkpoint(bs, errp); > @@ -6394,6 +6406,12 @@ void bdrv_do_checkpoint(BlockDriverState *bs, Error **errp) > void bdrv_stop_replication(BlockDriverState *bs, Error **errp) > { > BlockDriver *drv = bs->drv; > + Error *local_err = NULL; > + > + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_BACKING_REFERENCE, &local_err)) { > + error_free(local_err); > + return; > + } > > if (drv && drv->bdrv_stop_replication) { > drv->bdrv_stop_replication(bs, errp); > -- > 2.1.0 >