> > Meem, yes I thought of that.. and didn't really like the undo work be > done later on. But I reluctantly fell on the side of keeping the canput() > and put() as close to each other due to a mixture of sense of guilt and > paronia.. ;) > Your comments helped me sway the other way. (I also think the case > of QFULL will be a special case anyway like in the case of > lockd -> statd interaction, but that's besides the point). > > I've changed the code now.. and the new webrev's at: > > http://cr.opensolaris.org/~maheshvs/6762222-webrev2/
Looks good. I haven't looked at the back-off mechanism; I presume there's something to ensure that the system won't be pounding on this codepath if clnt_dispatch_send() fails. A couple nits: usr/src/uts/common/rpc/clnt_cots.c: * 400: Could probably remove the whitespace after "static int" and remove the need for the linewrap to 401. * 1086, 2537, 2709: Seems like this failure should be observable somehow -- e.g., DTrace SDT probe or the like. * 1087: Blank line seems needless. -- meem