Relax one of the conditions for mapping a page on the fast path.

Reviewed by:	kib
X-MFC with:	r270011
Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Alan Cox 2014-08-23 05:24:31 +00:00
parent 090234abd3
commit b9ce8cc2d7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=270387

View File

@ -306,8 +306,9 @@ RetryFault:;
(fs.first_object->flags & OBJ_MIGHTBEDIRTY) == 0)
goto fast_failed;
m = vm_page_lookup(fs.first_object, fs.first_pindex);
if (m == NULL || vm_page_busied(m) ||
m->valid != VM_PAGE_BITS_ALL)
/* A busy page can be mapped for read|execute access. */
if (m == NULL || ((prot & VM_PROT_WRITE) != 0 &&
vm_page_busied(m)) || m->valid != VM_PAGE_BITS_ALL)
goto fast_failed;
result = pmap_enter(fs.map->pmap, vaddr, m, prot,
fault_type | PMAP_ENTER_NOSLEEP | (wired ? PMAP_ENTER_WIRED :