On Fri, Aug 26, 2011 at 12:04 PM, Rick Macklem <rmack...@uoguelph.ca> wrote: > The patch looks good to me. The only thing is that *maybe* it should > also do the same for the other msleep() higher up in clnt_dg_call()? > (It seems to me that if this msleep() were to return ERESTART, the same > kernel loop would occur.) > > Here's this variant of the patch (I'll let you decide which to commit). > > Good work tracking this down, rick > > --- rpc/clnt_dg.c.sav 2011-08-26 14:44:27.000000000 -0400 > +++ rpc/clnt_dg.c 2011-08-26 14:48:07.000000000 -0400 > @@ -467,7 +467,10 @@ send_again: > cu->cu_waitflag, "rpccwnd", 0); > if (error) { > errp->re_errno = error; > - errp->re_status = stat = RPC_CANTSEND; > + if (error == EINTR || error == ERESTART) > + errp->re_status = stat = RPC_INTR; > + else > + errp->re_status = stat = RPC_CANTSEND; > goto out; > } > }
You're right. I'll add the change to the commit. --Artem > @@ -636,7 +639,7 @@ get_reply: > */ > if (error != EWOULDBLOCK) { > errp->re_errno = error; > - if (error == EINTR) > + if (error == EINTR || error == ERESTART) > errp->re_status = stat = RPC_INTR; > else > errp->re_status = stat = RPC_CANTRECV; > > _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"