diff options
author | Matthew Dillon <dillon@FreeBSD.org> | 2000-11-18 21:11:23 +0000 |
---|---|---|
committer | Matthew Dillon <dillon@FreeBSD.org> | 2000-11-18 21:11:23 +0000 |
commit | ef0646f9d8735d4ec0660372a7099117c164e160 (patch) | |
tree | e17ad90c17d36ae300db6fca65d4e06f471d32d2 /sys/vm | |
parent | 279d7226048c39b48b788e5ea5607c0dbc042acd (diff) | |
download | src-ef0646f9d8735d4ec0660372a7099117c164e160.tar.gz src-ef0646f9d8735d4ec0660372a7099117c164e160.zip |
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)
Notes
Notes:
svn path=/head/; revision=68884
Diffstat (limited to 'sys/vm')
-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 af4fe35cb656..686647e5ebc4 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); } } |