On Mon, 06/23 07:17, Benoît Canet wrote:
> The Monday 23 Jun 2014 à 12:32:30 (+0800), Fam Zheng wrote :
> > On Sat, 06/21 17:40, Benoît Canet wrote:
> > > The Saturday 21 Jun 2014 à 17:39:11 (+0200), Benoît 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 arbitrary 
> > > > node
> > > > replacement series).
> > > > 
> > > > From my understanding the unlocking of the root BDS is done by 
> > > > drive_mirror_complete
> > > > while the mirror code tries to unref the orphaned subtree _before_ 
> > > > drive_mirror_complete
> > > > is called.
> > > 
> > > One fixe to my sentence:
> > > s/drive_mirror_complete/block_job_complete/
> > > 
> > > 
> > > > 
> > > > So the bottom BDS would be unrefed before being unlocked.
> > 
> > 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 
> itself.
> The blocker is owned by the blockjob so it's difficult for mirror.c to do the 
> unblock.

For example, drive-backup doesn't change the chain, so this (chain
manipulation) blocker should be hold by mirror.c, not by blockjob.c.

Fam

Reply via email to