nfsd: set timeparms.to_maxval in setup_callback_client
authorJeff Layton <jlayton@redhat.com>
Tue, 15 Apr 2014 12:51:48 +0000 (08:51 -0400)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 18 May 2014 13:58:05 +0000 (14:58 +0100)
commit 3758cf7e14b753838fe754ede3862af10b35fdac upstream.

...otherwise the logic in the timeout handling doesn't work correctly.

Spotted-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
[bwh: Backported to 3.2: max_cb_time() takes no parameters]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/nfsd/nfs4callback.c

index 7748d6a..809a38a 100644 (file)
@@ -633,9 +633,11 @@ static int max_cb_time(void)
 
 static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *conn, struct nfsd4_session *ses)
 {
+       int maxtime = max_cb_time();
        struct rpc_timeout      timeparms = {
-               .to_initval     = max_cb_time(),
+               .to_initval     = maxtime,
                .to_retries     = 0,
+               .to_maxval      = maxtime,
        };
        struct rpc_create_args args = {
                .net            = &init_net,