diff -u --recursive --new-file linux-2.6.0-test1-15-mem/net/sunrpc/timer.c linux-2.6.0-test1-16-timer/net/sunrpc/timer.c --- linux-2.6.0-test1-15-mem/net/sunrpc/timer.c 2003-07-21 17:30:19.000000000 +0200 +++ linux-2.6.0-test1-16-timer/net/sunrpc/timer.c 2003-07-26 11:43:05.000000000 +0200 @@ -25,7 +25,7 @@ #define RPC_RTO_MAX (60*HZ) #define RPC_RTO_INIT (HZ/5) -#define RPC_RTO_MIN (2) +#define RPC_RTO_MIN (HZ/10) void rpc_init_rtt(struct rpc_rtt *rt, unsigned long timeo) @@ -50,7 +50,7 @@ void rpc_update_rtt(struct rpc_rtt *rt, unsigned timer, long m) { - unsigned long *srtt, *sdrtt; + long *srtt, *sdrtt; if (timer-- == 0) return; @@ -62,14 +62,14 @@ if (m == 0) m = 1L; - srtt = &rt->srtt[timer]; + srtt = (long *)&rt->srtt[timer]; m -= *srtt >> 3; *srtt += m; if (m < 0) m = -m; - sdrtt = &rt->sdrtt[timer]; + sdrtt = (long *)&rt->sdrtt[timer]; m -= *sdrtt >> 2; *sdrtt += m; @@ -99,7 +99,7 @@ if (timer-- == 0) return rt->timeo; - res = (rt->srtt[timer] >> 3) + rt->sdrtt[timer]; + res = ((rt->srtt[timer] + 7) >> 3) + rt->sdrtt[timer]; if (res > RPC_RTO_MAX) res = RPC_RTO_MAX;