SUNRPC: Remove redundant calls to rpciod_up()/rpciod_down()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
4ada539ed7
commit
f61534dfd3
6 changed files with 3 additions and 34 deletions
|
@ -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)
|
||||||
/* 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,
|
||||||
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,
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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 {
|
||||||
#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);
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in a new issue