summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2000-11-18 21:11:23 +0000
committerdillon <dillon@FreeBSD.org>2000-11-18 21:11:23 +0000
commit59e131028ff3997be98ab838d5ab9f965b1589ca (patch)
treeb0cfa088820d1efe1b0b83ff68b853385c93e18d /sys
parent15a44d16ca10bf52da55462560c345940cd19b38 (diff)
downloadFreeBSD-src-59e131028ff3997be98ab838d5ab9f965b1589ca.zip
FreeBSD-src-59e131028ff3997be98ab838d5ab9f965b1589ca.tar.gz
Add the splvm()'s suggested in PR 20609 to protect vm_pager_page_unswapped().
The remainder of the PR is still open. PR: kern/20609 (partial fix)
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_fault.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index af4fe35..686647e 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -796,6 +796,7 @@ readrest:
* any swap backing since the page is now dirty.
*/
if (fault_flags & VM_FAULT_DIRTY) {
+ int s;
if (fs.entry->eflags & MAP_ENTRY_NOSYNC) {
if (fs.m->dirty == 0)
vm_page_flag_set(fs.m, PG_NOSYNC);
@@ -803,7 +804,9 @@ readrest:
vm_page_flag_clear(fs.m, PG_NOSYNC);
}
vm_page_dirty(fs.m);
+ s = splvm();
vm_pager_page_unswapped(fs.m);
+ splx(s);
}
}
OpenPOWER on IntegriCloud