diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -630,7 +630,12 @@ return (0); cleanup: - vm_object_page_remove(obj, pindex, pindex + n, 0); + for (int i = 0; i < n; i++) { + m = ma[i]; + + (void)vm_page_unwire_noq(m); + vm_page_free(m); + } VM_OBJECT_WUNLOCK(obj); return (ENOMEM);