svc_rdvs_destroy()
decrement xp_refcnt at end not at start, because letting it go
to 0 when we're still using it is unsafe.
use svc_rdvs_release to actually decrement xp_refcnt & probably
call rdvs_dodestroy().

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
call sr_rec_release() at end of svc_rqst_thrd_run(), svc_rqst_thrd_signal().
Both of these call svc_rqst_lookup_chan(), which increments refcnt, so
must call sr_rec_release() to undo that.

Decrement refcnt at end of svc_rqst_delete_evchan().  The creation sets refcnt
to 1, so we need this special decrement to get the accounting right
so that it will actually go to 0 in the release.

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Always release lock on xprt, even if we didn't succeed in making a
client handle.

Coverity CID 24282.

Signed-off-by: Marcus Watts <mdw@cohortfs.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>