aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/client.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2007-12-20 16:03:57 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2008-01-30 02:05:59 -0500
commit7a3e3e18e40848b6f01d44407ce86b91b8535fbd (patch)
tree3caa0944475ac1fcb66a939b84562867c1c60e5e /fs/nfs/client.c
parentba7392bb37cb12781890f45d7ddee1618e33a036 (diff)
NFS: Ensure that we respect NFS_MAX_TCP_TIMEOUT
It isn't sufficient just to limit timeout->to_initval, we also need to limit to_maxval. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r--fs/nfs/client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 906613362a56..59a6dccab548 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -387,12 +387,16 @@ static void nfs_init_timeout_values(struct rpc_timeout *to, int proto,
387 switch (proto) { 387 switch (proto) {
388 case XPRT_TRANSPORT_TCP: 388 case XPRT_TRANSPORT_TCP:
389 case XPRT_TRANSPORT_RDMA: 389 case XPRT_TRANSPORT_RDMA:
390 if (!to->to_initval) 390 if (to->to_initval == 0)
391 to->to_initval = 60 * HZ; 391 to->to_initval = 60 * HZ;
392 if (to->to_initval > NFS_MAX_TCP_TIMEOUT) 392 if (to->to_initval > NFS_MAX_TCP_TIMEOUT)
393 to->to_initval = NFS_MAX_TCP_TIMEOUT; 393 to->to_initval = NFS_MAX_TCP_TIMEOUT;
394 to->to_increment = to->to_initval; 394 to->to_increment = to->to_initval;
395 to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); 395 to->to_maxval = to->to_initval + (to->to_increment * to->to_retries);
396 if (to->to_maxval > NFS_MAX_TCP_TIMEOUT)
397 to->to_maxval = NFS_MAX_TCP_TIMEOUT;
398 if (to->to_maxval < to->to_initval)
399 to->to_maxval = to->to_initval;
396 to->to_exponential = 0; 400 to->to_exponential = 0;
397 break; 401 break;
398 case XPRT_TRANSPORT_UDP: 402 case XPRT_TRANSPORT_UDP: