SUNRPC: Convert users of rpc_wake_up_task to use rpc_wake_up_queued_task
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 22 Feb 2008 21:34:12 +0000 (16:34 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 26 Feb 2008 05:40:42 +0000 (21:40 -0800)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c
include/linux/sunrpc/sched.h
net/sunrpc/clnt.c
net/sunrpc/sched.c
net/sunrpc/xprt.c

index b6db833f33e650f53b4f6cc73566f34202bc107f..54743396b66639f428aa84776d7fdd1d8b7a0093 100644 (file)
@@ -2768,7 +2768,7 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server)
                        rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL, NULL);
                        nfs4_schedule_state_recovery(clp);
                        if (test_bit(NFS4CLNT_STATE_RECOVER, &clp->cl_state) == 0)
-                               rpc_wake_up_task(task);
+                               rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task);
                        task->tk_status = 0;
                        return -EAGAIN;
                case -NFS4ERR_DELAY:
index 83f67779cf00ccca5e5a5a6e4d3a2903814830c2..7963ef0ffb8920d4440ca3e474a5bddc553b29aa 100644 (file)
@@ -232,7 +232,6 @@ void                rpc_init_priority_wait_queue(struct rpc_wait_queue *, const char *);
 void           rpc_init_wait_queue(struct rpc_wait_queue *, const char *);
 void           rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *,
                                        rpc_action action, rpc_action timer);
-void           rpc_wake_up_task(struct rpc_task *);
 void           rpc_wake_up_queued_task(struct rpc_wait_queue *,
                                        struct rpc_task *);
 void           rpc_wake_up(struct rpc_wait_queue *);
index fe95bd0ab1e96a40bdf0dc0be5e520ddd33b1ab3..0e209af39797bd4ecc64b28b070679d80535513d 100644 (file)
@@ -1066,7 +1066,7 @@ call_transmit(struct rpc_task *task)
        if (task->tk_msg.rpc_proc->p_decode != NULL)
                return;
        task->tk_action = rpc_exit_task;
-       rpc_wake_up_task(task);
+       rpc_wake_up_queued_task(&task->tk_xprt->pending, task);
 }
 
 /*
index 9233ace076aabc7f6803fba4f85aaa877019e3b4..35acdc39bfcb1b59eea1a90c6e0cf5958eb7221d 100644 (file)
@@ -417,11 +417,10 @@ EXPORT_SYMBOL_GPL(rpc_wake_up_queued_task);
 /*
  * Wake up the specified task
  */
-void rpc_wake_up_task(struct rpc_task *task)
+static void rpc_wake_up_task(struct rpc_task *task)
 {
        rpc_wake_up_queued_task(task->tk_waitqueue, task);
 }
-EXPORT_SYMBOL_GPL(rpc_wake_up_task);
 
 /*
  * Wake up the next task on a priority queue.
index 96c212ddc41a7710a44d0c36bb3315a4a61afcca..6e2772217e55585191312edba4f26f25cb10ce20 100644 (file)
@@ -472,7 +472,7 @@ void xprt_write_space(struct rpc_xprt *xprt)
        if (xprt->snd_task) {
                dprintk("RPC:       write space: waking waiting task on "
                                "xprt %p\n", xprt);
-               rpc_wake_up_task(xprt->snd_task);
+               rpc_wake_up_queued_task(&xprt->pending, xprt->snd_task);
        }
        spin_unlock_bh(&xprt->transport_lock);
 }
@@ -602,8 +602,7 @@ void xprt_force_disconnect(struct rpc_xprt *xprt)
        /* Try to schedule an autoclose RPC call */
        if (test_and_set_bit(XPRT_LOCKED, &xprt->state) == 0)
                queue_work(rpciod_workqueue, &xprt->task_cleanup);
-       else if (xprt->snd_task != NULL)
-               rpc_wake_up_task(xprt->snd_task);
+       xprt_wake_pending_tasks(xprt, -ENOTCONN);
        spin_unlock_bh(&xprt->transport_lock);
 }
 EXPORT_SYMBOL_GPL(xprt_force_disconnect);
@@ -749,18 +748,19 @@ EXPORT_SYMBOL_GPL(xprt_update_rtt);
 void xprt_complete_rqst(struct rpc_task *task, int copied)
 {
        struct rpc_rqst *req = task->tk_rqstp;
+       struct rpc_xprt *xprt = req->rq_xprt;
 
        dprintk("RPC: %5u xid %08x complete (%d bytes received)\n",
                        task->tk_pid, ntohl(req->rq_xid), copied);
 
-       task->tk_xprt->stat.recvs++;
+       xprt->stat.recvs++;
        task->tk_rtt = (long)jiffies - req->rq_xtime;
 
        list_del_init(&req->rq_list);
        /* Ensure all writes are done before we update req->rq_received */
        smp_wmb();
        req->rq_received = req->rq_private_buf.len = copied;
-       rpc_wake_up_task(task);
+       rpc_wake_up_queued_task(&xprt->pending, task);
 }
 EXPORT_SYMBOL_GPL(xprt_complete_rqst);