From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36480) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeDNf-0003ag-Td for qemu-devel@nongnu.org; Mon, 21 Sep 2015 22:32:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZeDNc-0004Tq-PV for qemu-devel@nongnu.org; Mon, 21 Sep 2015 22:32:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38214) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeDNc-0004Tm-Kt for qemu-devel@nongnu.org; Mon, 21 Sep 2015 22:32:28 -0400 Date: Tue, 22 Sep 2015 10:32:25 +0800 From: Fam Zheng Message-ID: <20150922023225.GE32115@ad.nay.redhat.com> References: <1442297513-7001-1-git-send-email-famz@redhat.com> <1442297513-7001-10-git-send-email-famz@redhat.com> <5600918A.3080106@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5600918A.3080106@redhat.com> Subject: Re: [Qemu-devel] [PATCH v6 09/14] block: Add block job transactions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow Cc: Kevin Wolf , Jeff Cody , qemu-devel@nongnu.org, Max Reitz , vsementsov@parallels.com, stefanha@redhat.com On Mon, 09/21 19:23, John Snow wrote: > > void block_job_completed(BlockJob *job, int ret) > > { > > BlockDriverState *bs = job->bs; > > @@ -98,8 +191,13 @@ void block_job_completed(BlockJob *job, int ret) > > assert(!job->completed); > > job->completed = true; > > job->ret = ret; > > - job->cb(job->opaque, ret); > > - block_job_unref(job); > > + if (!job->txn) { > > + block_job_completed_single(job); > > + } else if (ret < 0 || block_job_is_cancelled(job)) { > > + block_job_completed_txn_abort(job); > > + } else { > > over here it just appears we assert that ret is simply greater than or > equal to zero. Yeah, I don't think we have any possible positive ret value. Fam