kernel - Fix nfs server-side shutdown race
* Fix issues where slp->ns_so is being accessed during or after the socket
has been zapped. The zap code actually closes the fp and destroys the
socket so this race results in a use-after-free and can cause a panic
on the NFS server.
* Zapping now shuts the socket down but does not close/destroy it. The
socket will be destroyed when the last ref on slp (aka nfssvc_sock)
is dropped.
* Re-check SLP_VALID in a few more places after potentially blocking.
Other situations that might block are handled by the change in the
zap code.