From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39303) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bA94B-0003Xf-4l for qemu-devel@nongnu.org; Tue, 07 Jun 2016 00:56:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bA94A-0006hr-7Q for qemu-devel@nongnu.org; Tue, 07 Jun 2016 00:56:39 -0400 Message-ID: <575654C1.5060908@cn.fujitsu.com> Date: Tue, 7 Jun 2016 12:59:45 +0800 From: Changlong Xie MIME-Version: 1.0 References: <1463729780-31982-1-git-send-email-xiecl.fnst@cn.fujitsu.com> <1463729780-31982-9-git-send-email-xiecl.fnst@cn.fujitsu.com> In-Reply-To: <1463729780-31982-9-git-send-email-xiecl.fnst@cn.fujitsu.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v19 08/10] Implement new driver for block replication List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu devel , Stefan Hajnoczi , Fam Zheng , Max Reitz , Kevin Wolf , Jeff Cody Cc: qemu block , Paolo Bonzini , John Snow , Eric Blake , Markus Armbruster , "Dr. David Alan Gilbert" , Dong Eddie , Jiang Yunhong , zhanghailiang , Gonglei , Wen Congyang On 05/20/2016 03:36 PM, Changlong Xie wrote: > + > + /* > + * Must protect backup target if backup job was stopped/cancelled > + * unexpectedly > + */ > + bdrv_ref(s->hidden_disk->bs); > + > + backup_start(s->secondary_disk->bs, s->hidden_disk->bs, 0, > + MIRROR_SYNC_MODE_NONE, NULL, BLOCKDEV_ON_ERROR_REPORT, > + BLOCKDEV_ON_ERROR_REPORT, backup_job_completed, > + s, NULL, &local_err); > + if (local_err) { > + error_propagate(errp, local_err); > + backup_job_cleanup(s); > + bdrv_unref(s->hidden_disk->bs); > + aio_context_release(aio_context); > + return; > + } > + break; > + default: > + aio_context_release(aio_context); > + abort(); > + } commit 5c438bc6 introduce BB for I/O, so we don't need protect backup target by ourself now. - /* - * Must protect backup target if backup job was stopped/cancelled - * unexpectedly - */ - bdrv_ref(s->hidden_disk->bs); - backup_start(s->secondary_disk->bs, s->hidden_disk->bs, 0, MIRROR_SYNC_MODE_NONE, NULL, BLOCKDEV_ON_ERROR_REPORT, BLOCKDEV_ON_ERROR_REPORT, backup_job_completed, @@ -508,7 +502,6 @@ static void replication_start(ReplicationState *rs, ReplicationMode mode, if (local_err) { error_propagate(errp, local_err); backup_job_cleanup(s); - bdrv_unref(s->hidden_disk->bs); aio_context_release(aio_context); return; } will update in next version.