Merge branch 'passive_to_active' into passive_to_active_adrian
sorele_nounlock() was a fiction.  Cleanup of passive socket pairs on
listen queues was not being handled correctly.  In the new approach,
putting extra refs on passive socket paris is abandoned in favor of
deferring cleanup of each until both have no refs remaining.
Squash socket refcount adjustments that are no longer needed.
When reusing tcp_do_segment() to set up passive peer sockets, I
completely overlooked its lock-releasing behavior.  This is the
practical near-term solution that Adrian and I worked out and that
Adrian authored.  Ideally, the operative bits of interest to the
passive peer construction code could be factored out of
tcp_do_segment().
Merge branch 'passive_to_active'
Merge branch 'master' into passive_to_active_adrian