diff options
author | alc <alc@FreeBSD.org> | 2004-08-22 00:08:43 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-08-22 00:08:43 +0000 |
commit | 069d1661bd16d7519fd04fd460f25d700c8b0fb5 (patch) | |
tree | 6fe9a2cb36a6b42ec32cc178cf9f17715a5412f9 /sys/vm/vm_fault.c | |
parent | 5a65579e607e7b7297eb7a3977cb740c434cf606 (diff) | |
download | FreeBSD-src-069d1661bd16d7519fd04fd460f25d700c8b0fb5.zip FreeBSD-src-069d1661bd16d7519fd04fd460f25d700c8b0fb5.tar.gz |
In the previous revision, I failed to condition an early release of Giant
in vm_fault() on debug_mpsafevm. If debug_mpsafevm was not set, the result
was an assertion failure early in the boot process.
Reported by: green@
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r-- | sys/vm/vm_fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 1f6fd0b..318e9ba 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -295,7 +295,8 @@ RetryFault:; VM_OBJECT_LOCK(fs.first_object); vm_object_reference_locked(fs.first_object); fs.vp = vnode_pager_lock(fs.first_object); - mtx_unlock(&Giant); + if (debug_mpsafevm) + mtx_unlock(&Giant); vm_object_pip_add(fs.first_object, 1); fs.lookup_still_valid = TRUE; |