On Mon, 2008-05-19 at 13:50 +1000, Peter Leckie wrote: > Don't call __xprt_get_cong() if this is a retransmit. > This prevents __xprt_get_cong() from recursively > incrementing the congestion avoidance window for > retransmitted data. > > Signed-off-by: Peter Leckie <pleckie@xxxxxxxxxxxxxxxxx> > Reviewed-by: Greg Banks <gnb@xxxxxxxxxxxxxxxxx> > X-Sgi-Pv: 971446 > <http://bugworks/query.cgi/971446>--- > Index: linux-2.6.25.3/net/sunrpc/xprt.c > =================================================================== > --- linux-2.6.25.3.orig/net/sunrpc/xprt.c > +++ linux-2.6.25.3/net/sunrpc/xprt.c > @@ -224,7 +224,8 @@ int xprt_reserve_xprt_cong(struct rpc_ta > return 1; > goto out_sleep; > } > - if (__xprt_get_cong(xprt, task)) { > + /*If this is a retransmit don't increment cong*/ > + if ((req && req->rq_ntrans) ||__xprt_get_cong(xprt, task)) { > xprt->snd_task = task; > if (req) { > req->rq_bytes_sent = 0; > Why would we not want to increment the congestion avoidance window on retransmitted data? On timeout, xprt_adjust_cwnd will call __xprt_put_cong() prior to the retransmission, so I can't see how this is a 'recursive increment'. Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html