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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to