SUNRPC: Move rpc_register_client and friends into net/sunrpc/clnt.c
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
f61534dfd3
commit
188fef11db
|
@ -120,8 +120,6 @@ struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *,
|
||||||
struct rpc_clnt *rpc_clone_client(struct rpc_clnt *);
|
struct rpc_clnt *rpc_clone_client(struct rpc_clnt *);
|
||||||
void rpc_shutdown_client(struct rpc_clnt *);
|
void rpc_shutdown_client(struct rpc_clnt *);
|
||||||
void rpc_release_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 *);
|
int rpcb_register(u32, u32, int, unsigned short, int *);
|
||||||
void rpcb_getport(struct rpc_task *);
|
void rpcb_getport(struct rpc_task *);
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,12 @@
|
||||||
dprintk("RPC: %5u %s (status %d)\n", t->tk_pid, \
|
dprintk("RPC: %5u %s (status %d)\n", t->tk_pid, \
|
||||||
__FUNCTION__, t->tk_status)
|
__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);
|
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_header(struct rpc_task *task);
|
||||||
static __be32 * call_verify(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
|
static int
|
||||||
rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
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);
|
put_rpccred(msg.rpc_cred);
|
||||||
return err;
|
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
|
||||||
|
|
|
@ -47,11 +47,6 @@ static void rpc_release_task(struct rpc_task *task);
|
||||||
*/
|
*/
|
||||||
static RPC_WAITQ(delay_queue, "delayq");
|
static RPC_WAITQ(delay_queue, "delayq");
|
||||||
|
|
||||||
/*
|
|
||||||
* All RPC clients are linked into this list
|
|
||||||
*/
|
|
||||||
static LIST_HEAD(all_clients);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rpciod-related stuff
|
* rpciod-related stuff
|
||||||
*/
|
*/
|
||||||
|
@ -59,11 +54,6 @@ static DEFINE_MUTEX(rpciod_mutex);
|
||||||
static atomic_t rpciod_users = ATOMIC_INIT(0);
|
static atomic_t rpciod_users = ATOMIC_INIT(0);
|
||||||
struct workqueue_struct *rpciod_workqueue;
|
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
|
* Disable the timer for a given RPC task. Should be called with
|
||||||
* queue->lock and bh_disabled in order to avoid races within
|
* queue->lock and bh_disabled in order to avoid races within
|
||||||
|
@ -994,20 +984,6 @@ void rpc_killall_tasks(struct rpc_clnt *clnt)
|
||||||
spin_unlock(&clnt->cl_lock);
|
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.
|
* Start up the rpciod process if it's not already running.
|
||||||
*/
|
*/
|
||||||
|
@ -1059,44 +1035,6 @@ rpciod_down(void)
|
||||||
mutex_unlock(&rpciod_mutex);
|
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
|
void
|
||||||
rpc_destroy_mempool(void)
|
rpc_destroy_mempool(void)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue