vm_page_release_locked() attempts to free a previously wired page when
sendfile(SF_NOCACHE) completes, or the buffer cache releases a page
following direct I/O. A concurrent unlocked vm_page_grab() can wire the
page using only the busy lock, so we must check for new wirings after
the busy lock is acquired here, and avoid freeing the page if any are
detected. Once the (exclusive) busy lock is held, that, the object lock
and the fact that the page is unmapped guarantee that the wire count is
stable. If a new wiring is found, it is up to the unwiring thread to
ensure that it ends up in the page queues, so vm_page_release_locked()
can simply return.
Other places where we rely on this logic (e.g., page daemon, contig
reclaim) already handle it correctly.
Update the comment above vm_page_wired() to reflect the new
synchronization rules.