On Friday, August 20, 2010 4:58:57 pm John Baldwin wrote: > Author: jhb > Date: Fri Aug 20 20:58:57 2010 > New Revision: 211533 > URL: http://svn.freebsd.org/changeset/base/211533 > > Log: > Revert 210173 as it did not properly fix the bug. It assumed that the > VI_LOCK() for a given vnode was used as the internal interlock for that > vnode's v_lock lockmgr lock. This is not the case. Instead, add dedicated > routines to toggle the LK_NOSHARE and LK_CANRECURSE flags. These routines > lock the lockmgr lock's internal interlock to synchronize the updates to > the flags member with other threads attempting to acquire the lock. The > VN_LOCK_A*() macros now invoke these routines, and the softupdates code > uses these routines to temporarly enable recursion on buffer locks.
This is a direct commit rather than an MFC as the lockmgr implementation is completely different in relation to this bug than in 8.x and later. -- John Baldwin _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"