Merge tag 'nfs-for-4.15-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
[linux-2.6-microblaze.git] / net / sunrpc / xprt.c
index 898485e..333b9d6 100644 (file)
@@ -696,9 +696,9 @@ xprt_schedule_autodisconnect(struct rpc_xprt *xprt)
 }
 
 static void
-xprt_init_autodisconnect(unsigned long data)
+xprt_init_autodisconnect(struct timer_list *t)
 {
-       struct rpc_xprt *xprt = (struct rpc_xprt *)data;
+       struct rpc_xprt *xprt = from_timer(xprt, t, timer);
 
        spin_lock(&xprt->transport_lock);
        if (!list_empty(&xprt->recv))
@@ -1139,6 +1139,7 @@ void xprt_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task)
        case -EAGAIN:
                xprt_add_backlog(xprt, task);
                dprintk("RPC:       waiting for request slot\n");
+               /* fall through */
        default:
                task->tk_status = -EAGAIN;
        }
@@ -1422,10 +1423,9 @@ found:
                xprt->idle_timeout = 0;
        INIT_WORK(&xprt->task_cleanup, xprt_autoclose);
        if (xprt_has_timer(xprt))
-               setup_timer(&xprt->timer, xprt_init_autodisconnect,
-                           (unsigned long)xprt);
+               timer_setup(&xprt->timer, xprt_init_autodisconnect, 0);
        else
-               init_timer(&xprt->timer);
+               timer_setup(&xprt->timer, NULL, 0);
 
        if (strlen(args->servername) > RPC_MAXNETNAMELEN) {
                xprt_destroy(xprt);