Fix RPC_TIMEDOUT handling in clnt_dg_call.

It is incorrect to "timeout" without attempting to send.  Always
give poll a chance to find data (which we must do to avoid an
effective deadlock in the presence of timeouts).

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Fix segfault during shutdown.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Take write locks in rpc_dplx_shutdown().

To avoid deadlock, callers must have removed ALL registrations
before calling svc_shutdown().

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Handle timeout on duplex call

Previously, clnt_vc_call wasn't returning RPC_TIMEDOUT on duplex calls
that timed out.

Signed-off-by: Adam C. Emerson <aemerson@linuxbox.com>