Changeset View
Changeset View
Standalone View
Standalone View
sys/rpc/clnt_bck.c
Show First 20 Lines • Show All 320 Lines • ▼ Show 20 Lines | #endif | ||||
*/ | */ | ||||
sx_xlock(&xprt->xp_lock); | sx_xlock(&xprt->xp_lock); | ||||
error = sosend(xprt->xp_socket, NULL, NULL, mreq, NULL, 0, curthread); | error = sosend(xprt->xp_socket, NULL, NULL, mreq, NULL, 0, curthread); | ||||
if (error != 0) printf("sosend=%d\n", error); | if (error != 0) printf("sosend=%d\n", error); | ||||
mreq = NULL; | mreq = NULL; | ||||
if (error == EMSGSIZE) { | if (error == EMSGSIZE) { | ||||
printf("emsgsize\n"); | printf("emsgsize\n"); | ||||
SOCKBUF_LOCK(&xprt->xp_socket->so_snd); | SOCKBUF_LOCK(&xprt->xp_socket->so_snd); | ||||
sbwait(&xprt->xp_socket->so_snd); | sbwait(xprt->xp_socket, SO_SND); | ||||
SOCKBUF_UNLOCK(&xprt->xp_socket->so_snd); | SOCKBUF_UNLOCK(&xprt->xp_socket->so_snd); | ||||
sx_xunlock(&xprt->xp_lock); | sx_xunlock(&xprt->xp_lock); | ||||
AUTH_VALIDATE(auth, xid, NULL, NULL); | AUTH_VALIDATE(auth, xid, NULL, NULL); | ||||
mtx_lock(&ct->ct_lock); | mtx_lock(&ct->ct_lock); | ||||
TAILQ_REMOVE(&ct->ct_pending, cr, cr_link); | TAILQ_REMOVE(&ct->ct_pending, cr, cr_link); | ||||
goto call_again; | goto call_again; | ||||
} | } | ||||
sx_xunlock(&xprt->xp_lock); | sx_xunlock(&xprt->xp_lock); | ||||
▲ Show 20 Lines • Show All 282 Lines • Show Last 20 Lines |