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 10:56 AM, Michael van Elst <mlelstv%serpens.de@localhost> 
wrote:

> On Sun, Apr 28, 2013 at 10:31:19AM +0200, J. Hannken-Illjes wrote:
>> On Apr 27, 2013, at 12:27 AM, Michael van Elst 
>> <mlelstv%netbsd.org@localhost> wrote:
>> 
>>> Module Name:        src
>>> Committed By:       mlelstv
>>> Date:               Fri Apr 26 22:27:17 UTC 2013
>>> 
>>> Modified Files:
>>>     src/sys/kern: vfs_mount.c
>>>     src/sys/sys: mount.h
>>> 
>>> Log Message:
>>> Correct umount semantics to return EBUSY when a filesystem is busy
>>> instead of failing filesystem operations with EBUSY when attempting
>>> an umount.
>>> This fixes kern/38141.
>> 
>> Who did the review or where has it been discussed?
> 
> Christos with a former version and David Holland with the current.
> 
>> We now get a deadlock between mountlist_lock and mnt_unmounting,
>> seen between dounmount() and do_sys_sync() for example.
> 
> Do you have a PR showing how to produce that deadlock?

No PR -- but the attached script should do the job.

>> The lock order is mountlist_lock->mnt_unmounting, but dounmount()
>> locks in reverse direction.
> 
> 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.


> If there is a locking violation it just didn't
> show up with the former code as even LOCKDEBUG had been hacked to allow
> it.

This hack was about recursive rw_tryenter() if I remember right.

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

Attachment: hang-it.sh
Description: Binary data



Home | Main Index | Thread Index | Old Index