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. > > Fam