From: Matthew Dillon Date: Thu, 22 Dec 2011 19:43:26 +0000 (-0800) Subject: kernel - Properly dispose of vm_page_t in sf_buf_mfree() X-Git-Tag: v3.0.0~324 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/aa05e418024bc38dc764d95b3078aa0fd2057798 kernel - Properly dispose of vm_page_t in sf_buf_mfree() * Properly dispose of vm_page_t in sf_buf_mfree(), used by sendfile() * Should fix a VM page delete/free panic. Reported-by: sephe --- diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index bcbedfa04a..baeb7b15ce 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -1413,8 +1413,11 @@ sf_buf_mfree(void *arg) vm_page_busy_wait(m, FALSE, "sockpgf"); vm_page_unwire(m, 0); vm_page_wakeup(m); - if (m->wire_count == 0 && m->object == NULL) - vm_page_try_to_free(m); + if (m->wire_count == 0 && m->object == NULL) { + vm_page_free(m); + } else { + vm_page_wakeup(m); + } } }