diff options
author | kan <kan@FreeBSD.org> | 2004-08-23 02:39:45 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2004-08-23 02:39:45 +0000 |
commit | edf5a7b07f06cf4c6a2dd2d26b861cdcb8ca510c (patch) | |
tree | e78b5a78af3cfbd41d8db462f54a825c9e448b76 /sys | |
parent | 4836740e24a9c2a7f2ffb3128912df4b0023c007 (diff) | |
download | FreeBSD-src-edf5a7b07f06cf4c6a2dd2d26b861cdcb8ca510c.zip FreeBSD-src-edf5a7b07f06cf4c6a2dd2d26b861cdcb8ca510c.tar.gz |
Temporarily back out r1.74 as it seems to cause a number of regressions
accordimg to numerous reports. It might get reintroduced some time later
when an exact failure mode is understood better.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_lock.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/sys/kern/kern_lock.c b/sys/kern/kern_lock.c index f1b6a42..c819ba1 100644 --- a/sys/kern/kern_lock.c +++ b/sys/kern/kern_lock.c @@ -335,12 +335,8 @@ debuglockmgr(lkp, flags, interlkp, td, name, file, line) error = acquire(&lkp, extflags, LK_SHARE_NONZERO); lkp->lk_flags &= ~LK_WANT_UPGRADE; - if (error) { - if ((lkp->lk_flags & ( LK_WANT_EXCL | LK_WAIT_NONZERO)) == (LK_WANT_EXCL | LK_WAIT_NONZERO)) - wakeup((void *)lkp); - break; - } - + if (error) + break; lkp->lk_flags |= LK_HAVE_EXCL; lkp->lk_lockholder = thr; if (lkp->lk_exclusivecount != 0) @@ -386,20 +382,17 @@ debuglockmgr(lkp, flags, interlkp, td, name, file, line) /* * Try to acquire the want_exclusive flag. */ - error = acquire(&lkp, extflags, LK_WANT_EXCL); + error = acquire(&lkp, extflags, (LK_HAVE_EXCL | LK_WANT_EXCL)); if (error) break; lkp->lk_flags |= LK_WANT_EXCL; /* * Wait for shared locks and upgrades to finish. */ - error = acquire(&lkp, extflags, LK_HAVE_EXCL | LK_WANT_UPGRADE | LK_SHARE_NONZERO); + error = acquire(&lkp, extflags, LK_WANT_UPGRADE | LK_SHARE_NONZERO); lkp->lk_flags &= ~LK_WANT_EXCL; - if (error) { - if (lkp->lk_flags & LK_WAIT_NONZERO) - wakeup((void *)lkp); + if (error) break; - } lkp->lk_flags |= LK_HAVE_EXCL; lkp->lk_lockholder = thr; if (lkp->lk_exclusivecount != 0) |