mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-14 10:09:48 +00:00
Hold extra reference to vm object while cleaning pages.
This commit is contained in:
parent
b983aac762
commit
6b085058e4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=156224
@ -107,12 +107,14 @@ vm_contig_launder_page(vm_page_t m)
|
||||
if (object->type == OBJT_VNODE) {
|
||||
vm_page_unlock_queues();
|
||||
vp = object->handle;
|
||||
vm_object_reference_locked(object);
|
||||
VM_OBJECT_UNLOCK(object);
|
||||
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curthread);
|
||||
VM_OBJECT_LOCK(object);
|
||||
vm_object_page_clean(object, 0, 0, OBJPC_SYNC);
|
||||
VM_OBJECT_UNLOCK(object);
|
||||
VOP_UNLOCK(vp, 0, curthread);
|
||||
vm_object_deallocate(object);
|
||||
vm_page_lock_queues();
|
||||
return (0);
|
||||
} else if (object->type == OBJT_SWAP ||
|
||||
|
Loading…
Reference in New Issue
Block a user