diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index e9e236f462ff..919f33f0f412 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -616,10 +616,9 @@ sf_buf_alloc(struct vm_page *m) mtx_lock(&sf_buf_lock); LIST_FOREACH(sf, hash_list, list_entry) { if (sf->m == m) { - if (sf->ref_count == 0) - TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry); sf->ref_count++; if (sf->ref_count == 1) { + TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry); nsfbufsused++; nsfbufspeak = imax(nsfbufspeak, nsfbufsused); }