提交 f61534df 编写于 作者: T Trond Myklebust

SUNRPC: Remove redundant calls to rpciod_up()/rpciod_down()

Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 4ada539e
...@@ -123,9 +123,6 @@ lockd(struct svc_rqst *rqstp) ...@@ -123,9 +123,6 @@ lockd(struct svc_rqst *rqstp)
/* Process request with signals blocked, but allow SIGKILL. */ /* Process request with signals blocked, but allow SIGKILL. */
allow_signal(SIGKILL); allow_signal(SIGKILL);
/* kick rpciod */
rpciod_up();
dprintk("NFS locking service started (ver " LOCKD_VERSION ").\n"); dprintk("NFS locking service started (ver " LOCKD_VERSION ").\n");
if (!nlm_timeout) if (!nlm_timeout)
...@@ -202,9 +199,6 @@ lockd(struct svc_rqst *rqstp) ...@@ -202,9 +199,6 @@ lockd(struct svc_rqst *rqstp)
/* Exit the RPC thread */ /* Exit the RPC thread */
svc_exit_thread(rqstp); svc_exit_thread(rqstp);
/* release rpciod */
rpciod_down();
/* Release module */ /* Release module */
unlock_kernel(); unlock_kernel();
module_put_and_exit(0); module_put_and_exit(0);
......
...@@ -102,19 +102,10 @@ static struct nfs_client *nfs_alloc_client(const char *hostname, ...@@ -102,19 +102,10 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
int nfsversion) int nfsversion)
{ {
struct nfs_client *clp; struct nfs_client *clp;
int error;
if ((clp = kzalloc(sizeof(*clp), GFP_KERNEL)) == NULL) if ((clp = kzalloc(sizeof(*clp), GFP_KERNEL)) == NULL)
goto error_0; goto error_0;
error = rpciod_up();
if (error < 0) {
dprintk("%s: couldn't start rpciod! Error = %d\n",
__FUNCTION__, error);
goto error_1;
}
__set_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
if (nfsversion == 4) { if (nfsversion == 4) {
if (nfs_callback_up() < 0) if (nfs_callback_up() < 0)
goto error_2; goto error_2;
...@@ -154,9 +145,6 @@ static struct nfs_client *nfs_alloc_client(const char *hostname, ...@@ -154,9 +145,6 @@ static struct nfs_client *nfs_alloc_client(const char *hostname,
if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state)) if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state))
nfs_callback_down(); nfs_callback_down();
error_2: error_2:
rpciod_down();
__clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state);
error_1:
kfree(clp); kfree(clp);
error_0: error_0:
return NULL; return NULL;
...@@ -198,9 +186,6 @@ static void nfs_free_client(struct nfs_client *clp) ...@@ -198,9 +186,6 @@ static void nfs_free_client(struct nfs_client *clp)
if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state)) if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state))
nfs_callback_down(); nfs_callback_down();
if (__test_and_clear_bit(NFS_CS_RPCIOD, &clp->cl_res_state))
rpciod_down();
kfree(clp->cl_hostname); kfree(clp->cl_hostname);
kfree(clp); kfree(clp);
......
...@@ -429,29 +429,23 @@ nfsd4_probe_callback(struct nfs4_client *clp) ...@@ -429,29 +429,23 @@ nfsd4_probe_callback(struct nfs4_client *clp)
goto out_err; goto out_err;
} }
/* Kick rpciod, put the call on the wire. */
if (rpciod_up() != 0)
goto out_clnt;
/* the task holds a reference to the nfs4_client struct */ /* the task holds a reference to the nfs4_client struct */
atomic_inc(&clp->cl_count); atomic_inc(&clp->cl_count);
msg.rpc_cred = nfsd4_lookupcred(clp,0); msg.rpc_cred = nfsd4_lookupcred(clp,0);
if (IS_ERR(msg.rpc_cred)) if (IS_ERR(msg.rpc_cred))
goto out_rpciod; goto out_release_clp;
status = rpc_call_async(cb->cb_client, &msg, RPC_TASK_ASYNC, &nfs4_cb_null_ops, NULL); status = rpc_call_async(cb->cb_client, &msg, RPC_TASK_ASYNC, &nfs4_cb_null_ops, NULL);
put_rpccred(msg.rpc_cred); put_rpccred(msg.rpc_cred);
if (status != 0) { if (status != 0) {
dprintk("NFSD: asynchronous NFSPROC4_CB_NULL failed!\n"); dprintk("NFSD: asynchronous NFSPROC4_CB_NULL failed!\n");
goto out_rpciod; goto out_release_clp;
} }
return; return;
out_rpciod: out_release_clp:
atomic_dec(&clp->cl_count); atomic_dec(&clp->cl_count);
rpciod_down();
out_clnt:
rpc_shutdown_client(cb->cb_client); rpc_shutdown_client(cb->cb_client);
out_err: out_err:
cb->cb_client = NULL; cb->cb_client = NULL;
......
...@@ -378,7 +378,6 @@ shutdown_callback_client(struct nfs4_client *clp) ...@@ -378,7 +378,6 @@ shutdown_callback_client(struct nfs4_client *clp)
if (clnt) { if (clnt) {
clp->cl_callback.cb_client = NULL; clp->cl_callback.cb_client = NULL;
rpc_shutdown_client(clnt); rpc_shutdown_client(clnt);
rpciod_down();
} }
} }
......
...@@ -16,7 +16,6 @@ struct nfs_client { ...@@ -16,7 +16,6 @@ struct nfs_client {
#define NFS_CS_INITING 1 /* busy initialising */ #define NFS_CS_INITING 1 /* busy initialising */
int cl_nfsversion; /* NFS protocol version */ int cl_nfsversion; /* NFS protocol version */
unsigned long cl_res_state; /* NFS resources state */ unsigned long cl_res_state; /* NFS resources state */
#define NFS_CS_RPCIOD 0 /* - rpciod started */
#define NFS_CS_CALLBACK 1 /* - callback started */ #define NFS_CS_CALLBACK 1 /* - callback started */
#define NFS_CS_IDMAP 2 /* - idmap started */ #define NFS_CS_IDMAP 2 /* - idmap started */
#define NFS_CS_RENEWD 3 /* - renewd started */ #define NFS_CS_RENEWD 3 /* - renewd started */
......
...@@ -28,8 +28,6 @@ EXPORT_SYMBOL(rpc_init_task); ...@@ -28,8 +28,6 @@ EXPORT_SYMBOL(rpc_init_task);
EXPORT_SYMBOL(rpc_sleep_on); EXPORT_SYMBOL(rpc_sleep_on);
EXPORT_SYMBOL(rpc_wake_up_next); EXPORT_SYMBOL(rpc_wake_up_next);
EXPORT_SYMBOL(rpc_wake_up_task); EXPORT_SYMBOL(rpc_wake_up_task);
EXPORT_SYMBOL(rpciod_down);
EXPORT_SYMBOL(rpciod_up);
EXPORT_SYMBOL(rpc_wake_up_status); EXPORT_SYMBOL(rpc_wake_up_status);
/* RPC client functions */ /* RPC client functions */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册