SUNRPC: Move rpc_register_client and friends into net/sunrpc/clnt.c
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 16 Jun 2007 18:18:40 +0000 (14:18 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 11 Jul 2007 03:40:30 +0000 (23:40 -0400)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
include/linux/sunrpc/clnt.h
net/sunrpc/clnt.c
net/sunrpc/sched.c

index cf03494..a451351 100644 (file)
@@ -120,8 +120,6 @@ struct rpc_clnt     *rpc_bind_new_program(struct rpc_clnt *,
 struct rpc_clnt *rpc_clone_client(struct rpc_clnt *);
 void           rpc_shutdown_client(struct rpc_clnt *);
 void           rpc_release_client(struct rpc_clnt *);
-void           rpc_register_client(struct rpc_clnt *);
-void           rpc_unregister_client(struct rpc_clnt *);
 int            rpcb_register(u32, u32, int, unsigned short, int *);
 void           rpcb_getport(struct rpc_task *);
 
index fe838e9..4f39ab1 100644 (file)
        dprintk("RPC: %5u %s (status %d)\n", t->tk_pid,         \
                        __FUNCTION__, t->tk_status)
 
+/*
+ * All RPC clients are linked into this list
+ */
+static LIST_HEAD(all_clients);
+static DEFINE_SPINLOCK(rpc_client_lock);
+
 static DECLARE_WAIT_QUEUE_HEAD(destroy_wait);
 
 
@@ -66,6 +72,19 @@ static void  call_connect_status(struct rpc_task *task);
 static __be32 *        call_header(struct rpc_task *task);
 static __be32 *        call_verify(struct rpc_task *task);
 
+static void rpc_register_client(struct rpc_clnt *clnt)
+{
+       spin_lock(&rpc_client_lock);
+       list_add(&clnt->cl_clients, &all_clients);
+       spin_unlock(&rpc_client_lock);
+}
+
+static void rpc_unregister_client(struct rpc_clnt *clnt)
+{
+       spin_lock(&rpc_client_lock);
+       list_del(&clnt->cl_clients);
+       spin_unlock(&rpc_client_lock);
+}
 
 static int
 rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
@@ -1410,3 +1429,41 @@ int rpc_ping(struct rpc_clnt *clnt, int flags)
        put_rpccred(msg.rpc_cred);
        return err;
 }
+
+#ifdef RPC_DEBUG
+void rpc_show_tasks(void)
+{
+       struct rpc_clnt *clnt;
+       struct rpc_task *t;
+
+       spin_lock(&rpc_client_lock);
+       if (list_empty(&all_clients))
+               goto out;
+       printk("-pid- proc flgs status -client- -prog- --rqstp- -timeout "
+               "-rpcwait -action- ---ops--\n");
+       list_for_each_entry(clnt, &all_clients, cl_clients) {
+               if (list_empty(&clnt->cl_tasks))
+                       continue;
+               spin_lock(&clnt->cl_lock);
+               list_for_each_entry(t, &clnt->cl_tasks, tk_task) {
+                       const char *rpc_waitq = "none";
+
+                       if (RPC_IS_QUEUED(t))
+                               rpc_waitq = rpc_qname(t->u.tk_wait.rpc_waitq);
+
+                       printk("%5u %04d %04x %6d %8p %6d %8p %8ld %8s %8p %8p\n",
+                               t->tk_pid,
+                               (t->tk_msg.rpc_proc ? t->tk_msg.rpc_proc->p_proc : -1),
+                               t->tk_flags, t->tk_status,
+                               t->tk_client,
+                               (t->tk_client ? t->tk_client->cl_prog : 0),
+                               t->tk_rqstp, t->tk_timeout,
+                               rpc_waitq,
+                               t->tk_action, t->tk_ops);
+               }
+               spin_unlock(&clnt->cl_lock);
+       }
+out:
+       spin_unlock(&rpc_client_lock);
+}
+#endif
index 0582515..c0f8d25 100644 (file)
@@ -48,11 +48,6 @@ static void                   rpc_release_task(struct rpc_task *task);
 static RPC_WAITQ(delay_queue, "delayq");
 
 /*
- * All RPC clients are linked into this list
- */
-static LIST_HEAD(all_clients);
-
-/*
  * rpciod-related stuff
  */
 static DEFINE_MUTEX(rpciod_mutex);
@@ -60,11 +55,6 @@ static atomic_t rpciod_users = ATOMIC_INIT(0);
 struct workqueue_struct *rpciod_workqueue;
 
 /*
- * Spinlock for other critical sections of code.
- */
-static DEFINE_SPINLOCK(rpc_sched_lock);
-
-/*
  * Disable the timer for a given RPC task. Should be called with
  * queue->lock and bh_disabled in order to avoid races within
  * rpc_run_timer().
@@ -994,20 +984,6 @@ void rpc_killall_tasks(struct rpc_clnt *clnt)
        spin_unlock(&clnt->cl_lock);
 }
 
-void rpc_register_client(struct rpc_clnt *clnt)
-{
-       spin_lock(&rpc_sched_lock);
-       list_add(&clnt->cl_clients, &all_clients);
-       spin_unlock(&rpc_sched_lock);
-}
-
-void rpc_unregister_client(struct rpc_clnt *clnt)
-{
-       spin_lock(&rpc_sched_lock);
-       list_del(&clnt->cl_clients);
-       spin_unlock(&rpc_sched_lock);
-}
-
 /*
  * Start up the rpciod process if it's not already running.
  */
@@ -1059,44 +1035,6 @@ rpciod_down(void)
        mutex_unlock(&rpciod_mutex);
 }
 
-#ifdef RPC_DEBUG
-void rpc_show_tasks(void)
-{
-       struct rpc_clnt *clnt;
-       struct rpc_task *t;
-
-       spin_lock(&rpc_sched_lock);
-       if (list_empty(&all_clients))
-               goto out;
-       printk("-pid- proc flgs status -client- -prog- --rqstp- -timeout "
-               "-rpcwait -action- ---ops--\n");
-       list_for_each_entry(clnt, &all_clients, cl_clients) {
-               if (list_empty(&clnt->cl_tasks))
-                       continue;
-               spin_lock(&clnt->cl_lock);
-               list_for_each_entry(t, &clnt->cl_tasks, tk_task) {
-                       const char *rpc_waitq = "none";
-
-                       if (RPC_IS_QUEUED(t))
-                               rpc_waitq = rpc_qname(t->u.tk_wait.rpc_waitq);
-
-                       printk("%5u %04d %04x %6d %8p %6d %8p %8ld %8s %8p %8p\n",
-                               t->tk_pid,
-                               (t->tk_msg.rpc_proc ? t->tk_msg.rpc_proc->p_proc : -1),
-                               t->tk_flags, t->tk_status,
-                               t->tk_client,
-                               (t->tk_client ? t->tk_client->cl_prog : 0),
-                               t->tk_rqstp, t->tk_timeout,
-                               rpc_waitq,
-                               t->tk_action, t->tk_ops);
-               }
-               spin_unlock(&clnt->cl_lock);
-       }
-out:
-       spin_unlock(&rpc_sched_lock);
-}
-#endif
-
 void
 rpc_destroy_mempool(void)
 {