aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2018-11-10 20:33:08 +0000
committerMark Johnston <markj@FreeBSD.org>2018-11-10 20:33:08 +0000
commit0e48e06807cfe7971a04a6013a7f260efd30cfc9 (patch)
tree1c8eb0d19960f3c734da75718182d3494c0e9a02 /sys/vm
parent900c4ed3ca131f4985bfc0b7e073c5a7430cc2b0 (diff)
downloadsrc-0e48e06807cfe7971a04a6013a7f260efd30cfc9.tar.gz
src-0e48e06807cfe7971a04a6013a7f260efd30cfc9.zip
Re-apply r336984, reverting r339934.
r336984 exposed the bug fixed in r340241, leading to the initial revert while the bug was being hunted down. Now that the bug is fixed, we can revert the revert. Discussed with: alc MFC after: 3 days
Notes
Notes: svn path=/head/; revision=340331
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 7a92301d3183..578bcd760071 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -2143,8 +2143,9 @@ vm_object_coalesce(vm_object_t prev_object, vm_ooffset_t prev_offset,
next_size >>= PAGE_SHIFT;
next_pindex = OFF_TO_IDX(prev_offset) + prev_size;
- if ((prev_object->ref_count > 1) &&
- (prev_object->size != next_pindex)) {
+ if (prev_object->ref_count > 1 &&
+ prev_object->size != next_pindex &&
+ (prev_object->flags & OBJ_ONEMAPPING) == 0) {
VM_OBJECT_WUNLOCK(prev_object);
return (FALSE);
}