diff options
author | dillon <dillon@FreeBSD.org> | 2000-11-18 21:11:23 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 2000-11-18 21:11:23 +0000 |
commit | 59e131028ff3997be98ab838d5ab9f965b1589ca (patch) | |
tree | b0cfa088820d1efe1b0b83ff68b853385c93e18d | |
parent | 15a44d16ca10bf52da55462560c345940cd19b38 (diff) | |
download | FreeBSD-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)
-rw-r--r-- | sys/vm/vm_fault.c | 3 |
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); } } |