--- sys/vm/vm_page.c.orig
+++ sys/vm/vm_page.c
@@ -304,8 +304,10 @@
 
 	mtx_lock(&vm_page_queue_free_mtx);
 	ret = vm_phys_unfree_page(m);
+	if (ret != 0)
+		vm_phys_freecnt_adj(m, -1);
 	mtx_unlock(&vm_page_queue_free_mtx);
-	if (ret) {
+	if (ret != 0) {
 		TAILQ_INSERT_TAIL(&blacklist_head, m, listq);
 		if (verbose)
 			printf("Skipping page with pa 0x%jx\n", (uintmax_t)pa);
