From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45521) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yb1xZ-0003kM-HS for qemu-devel@nongnu.org; Thu, 26 Mar 2015 03:12:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yb1xY-00050G-HS for qemu-devel@nongnu.org; Thu, 26 Mar 2015 03:12:09 -0400 Message-ID: <5513B201.6000802@cn.fujitsu.com> Date: Thu, 26 Mar 2015 15:15:13 +0800 From: Wen Congyang MIME-Version: 1.0 References: <1427276174-9130-1-git-send-email-wency@cn.fujitsu.com> <1427276174-9130-13-git-send-email-wency@cn.fujitsu.com> <20150326070341.GH14724@ad.nay.redhat.com> In-Reply-To: <20150326070341.GH14724@ad.nay.redhat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit 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: Fam Zheng 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 03/26/2015 03:03 PM, Fam Zheng wrote: > 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. Yes, will fix it in the next version. Thanks Wen Congyang > >> + 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 >> > . >