From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33052) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WywdR-0000RU-Mc for qemu-devel@nongnu.org; Mon, 23 Jun 2014 01:17:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WywdL-0004y0-Ih for qemu-devel@nongnu.org; Mon, 23 Jun 2014 01:17:41 -0400 Received: from lputeaux-656-01-25-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:51888 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WywdL-0004xi-Cb for qemu-devel@nongnu.org; Mon, 23 Jun 2014 01:17:35 -0400 Date: Mon, 23 Jun 2014 07:17:31 +0200 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140623051731.GA21371@irqsave.net> References: <53A34460.8010302@redhat.com> <20140619202043.GA18306@irqsave.net> <20140620050106.GB15938@T430.redhat.com> <53A453AF.3@redhat.com> <20140621085358.GA11607@T430.redhat.com> <20140621104551.GA986@irqsave.net> <20140621151519.GA14173@T430> <20140621153911.GB2108@irqsave.net> <20140621154028.GC2108@irqsave.net> <20140623043230.GB5977@T430.nay.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20140623043230.GB5977@T430.nay.redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] block: Make op blocker recursive List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: =?iso-8859-1?Q?Beno=EEt?= Canet , kwolf@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com The Monday 23 Jun 2014 =E0 12:32:30 (+0800), Fam Zheng wrote : > On Sat, 06/21 17:40, Beno=EEt Canet wrote: > > The Saturday 21 Jun 2014 =E0 17:39:11 (+0200), Beno=EEt Canet wrote : > > > We still have the issue of unlocking the bottom BDS when a subtree = is detached > > > from the graphs by a swap. (It does happen in my drive-mirror arbit= rary node > > > replacement series). > > >=20 > > > From my understanding the unlocking of the root BDS is done by driv= e_mirror_complete > > > while the mirror code tries to unref the orphaned subtree _before_ = drive_mirror_complete > > > is called. > >=20 > > One fixe to my sentence: > > s/drive_mirror_complete/block_job_complete/ > >=20 > >=20 > > >=20 > > > So the bottom BDS would be unrefed before being unlocked. >=20 > I don't see a problem with that, we can do the unlock before unref the = node if > we want. My concern is that mirror.c does the unref and don't own the Blocker by i= tself. The blocker is owned by the blockjob so it's difficult for mirror.c to do= the unblock. >=20 > Fam