diff options
| author | pooka <pooka@NetBSD.org> | 2007-07-29 12:40:37 +0000 |
|---|---|---|
| committer | pooka <pooka@NetBSD.org> | 2007-07-29 12:40:37 +0000 |
| commit | abf11c212d2132f31c7bde8a89c38aa2719aeb97 (patch) | |
| tree | ca0d4fa579e69fbf7d4606d6053de7593520b493 /sys/dev/raidframe | |
| parent | 66fefd117bcf82d547bfa88ca68a5b43f17a7103 (diff) | |
Define a new lockmgr flag LK_RESURRECT which can be used in
conjunction with LK_DRAIN. This has the same effect as LK_DRAIN
except it atomically does NOT mark the lock as drained. This
guarantees that when we got the lock, we were the last one currently
waiting for the lock.
Use LK_DRAIN|LK_RESURRECT in vclean() to make sure there are no
waiters for the lock. This should fix behaviour theoretized to be
caused by vfs_subr.c 1.289 which caused vclean() to run into
completion and free the vnode before all lock-waiters had been
processed. Should therefore fix the "simple_lock: unitialized lock"
problems seen recently.
thanks to Juergen Hannken-Illjes for some analysis of the problem
and Erik Bertelsen for testing
Diffstat (limited to 'sys/dev/raidframe')
0 files changed, 0 insertions, 0 deletions
