cvs commit: src/share/man/man9 lock.9
Robert Watson
rwatson at FreeBSD.org
Fri Aug 25 05:47:51 UTC 2006
On Thu, 24 Aug 2006, Julian Elischer wrote:
> Konstantin Belousov wrote:
>
>> kib 2006-08-24 10:16:01 UTC
>>
>> FreeBSD src repository
>>
>> Modified files: (Branch: RELENG_6)
>> share/man/man9 lock.9 Log:
>> MFC rev.1.14:
>> Note that LK_UPGRADE may drop the shared lock before taking the
>> exclusive one.
>>
> excuse my ignorance but I though that the whole aim of an upgrade was to
> make sure that you did NOT drop it before getting the exclusive lock..( or
> it fails and you back out and retry)
This is a feature and a bug. :-)
In order to avoid deadlock on upgrade, one of two things must happen:
- The upgrade must be able to fail -- i.e., sx(9)'s sx_try_upgrade().
- A race must be introduced in which the shared lock is released before an
exclusive lock is acquired -- i.e., lockmgr(9)'s LK_UPGRADE.
Consumers of lockmgr(9) -- specifically, VFS, are aware of this. Documenting
it is good, however. :-)
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the cvs-src
mailing list