Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



On Apr 28, 2013, at 4:32 PM, Michael van Elst <mlelstv%serpens.de@localhost> 
wrote:

> On Sun, Apr 28, 2013 at 01:50:37PM +0200, J. Hannken-Illjes wrote:
> 
>>> The locking order hasn't been changed, but the faulty tryenter has been
>>> replaced with an enter.
>> 
>> Sure -- and that is the problem.  The locking order was wrong and you
>> removed the hack/workaround without fixing the lock order.
> 
> I now release the mnt_unmounting lock before aquiring the mountlist_lock.
> This opens a race condition for a concurrent umount that I prevent by
> raising the nest counter. With this change I can no longer provoke
> the deadlock.
> 
> The only difference should now be that vfs_hooks_unmount() is called
> outside the unmounting lock. But since it is operating on an already
> detached mountpoint (if it is used at all) before it is destroyed,
> that should be harmless.
> 
> What do you think?
<snip>

Unfortunately this also opens a race for do_sys_sync to succeed with
vfs_busy() and call ffs_sync() with mp->mnt_data == NULL -> BOMB.

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig 
(Germany)


Home | Main Index | Thread Index | Old Index