summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2015-04-02 19:10:33 +0000
committeralc <alc@FreeBSD.org>2015-04-02 19:10:33 +0000
commita75a91e66032ad7ead8007dcdeb6f97dbf83669f (patch)
tree00709112c8225921cc7d50fe20ca4a50f79ac58e /sys/vm
parent4b74d7e3efdd886761a3f7aac74f04ec2d236489 (diff)
downloadFreeBSD-src-a75a91e66032ad7ead8007dcdeb6f97dbf83669f.zip
FreeBSD-src-a75a91e66032ad7ead8007dcdeb6f97dbf83669f.tar.gz
MFC r280238
Fix the root cause of the "vm_reserv_populate: reserv <address> is already promoted" panics. PR: 198163
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_fault.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index dfbc2bd..4311fe8 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -101,6 +101,7 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_kern.h>
#include <vm/vm_pager.h>
#include <vm/vm_extern.h>
+#include <vm/vm_reserv.h>
#define PFBAK 4
#define PFFOR 4
@@ -844,6 +845,14 @@ vnode_locked:
unlock_and_deallocate(&fs);
goto RetryFault;
}
+#if VM_NRESERVLEVEL > 0
+ /*
+ * Rename the reservation.
+ */
+ vm_reserv_rename(fs.m, fs.first_object,
+ fs.object, OFF_TO_IDX(
+ fs.first_object->backing_object_offset));
+#endif
vm_page_xbusy(fs.m);
fs.first_m = fs.m;
fs.m = NULL;
OpenPOWER on IntegriCloud