staging: lustre: remove uses of IS_ERR_VALUE()
Remove most uses of IS_ERR_VALUE(). This macro was often given an int argument coming from PTR_ERR(). This invokes implementation defined behavior since the long value gotten by applying PTR_ERR() to a kernel pointer will usually not be representable as an int. Moreover it may be just plain wrong to do this since the expressions IS_ERR(p) and IS_ERR_VALUE((int) PTR_ERR(p)) are not equivalent for a general pointer p. Signed-off-by: John L. Hammond <john.hammond@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3498 Reviewed-on: http://review.whamcloud.com/6759 Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>hifive-unleashed-5.1
parent
764d2e9aed
commit
060c2820d0
|
@ -439,6 +439,7 @@ accept2secure(const char *acc, long *sec)
|
|||
int
|
||||
lnet_acceptor_start(void)
|
||||
{
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
long rc2;
|
||||
long secure;
|
||||
|
@ -457,10 +458,10 @@ lnet_acceptor_start(void)
|
|||
if (!lnet_count_acceptor_nis()) /* not required */
|
||||
return 0;
|
||||
|
||||
rc2 = PTR_ERR(kthread_run(lnet_acceptor,
|
||||
(void *)(ulong_ptr_t)secure,
|
||||
"acceptor_%03ld", secure));
|
||||
if (IS_ERR_VALUE(rc2)) {
|
||||
task = kthread_run(lnet_acceptor, (void *)(ulong_ptr_t)secure,
|
||||
"acceptor_%03ld", secure);
|
||||
if (IS_ERR(task)) {
|
||||
rc2 = PTR_ERR(task);
|
||||
CERROR("Can't start acceptor thread: %ld\n", rc2);
|
||||
|
||||
return -ESRCH;
|
||||
|
|
|
@ -1004,6 +1004,7 @@ lnet_ping_router_locked(lnet_peer_t *rtr)
|
|||
int
|
||||
lnet_router_checker_start(void)
|
||||
{
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
int eqsz;
|
||||
|
||||
|
@ -1034,9 +1035,9 @@ lnet_router_checker_start(void)
|
|||
}
|
||||
|
||||
the_lnet.ln_rc_state = LNET_RC_STATE_RUNNING;
|
||||
rc = PTR_ERR(kthread_run(lnet_router_checker,
|
||||
NULL, "router_checker"));
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
task = kthread_run(lnet_router_checker, NULL, "router_checker");
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("Can't start router checker thread: %d\n", rc);
|
||||
/* block until event callback signals exit */
|
||||
down(&the_lnet.ln_rc_signal);
|
||||
|
|
|
@ -1056,6 +1056,7 @@ end_loop:
|
|||
int cfs_trace_start_thread(void)
|
||||
{
|
||||
struct tracefiled_ctl *tctl = &trace_tctl;
|
||||
struct task_struct *task;
|
||||
int rc = 0;
|
||||
|
||||
mutex_lock(&cfs_trace_thread_mutex);
|
||||
|
@ -1067,8 +1068,9 @@ int cfs_trace_start_thread(void)
|
|||
init_waitqueue_head(&tctl->tctl_waitq);
|
||||
atomic_set(&tctl->tctl_shutdown, 0);
|
||||
|
||||
if (IS_ERR(kthread_run(tracefiled, tctl, "ktracefiled"))) {
|
||||
rc = -ECHILD;
|
||||
task = kthread_run(tracefiled, tctl, "ktracefiled");
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
|
@ -1498,6 +1498,7 @@ int do_statahead_enter(struct inode *dir, struct dentry **dentryp,
|
|||
struct ll_sa_entry *entry;
|
||||
struct ptlrpc_thread *thread;
|
||||
struct l_wait_info lwi = { 0 };
|
||||
struct task_struct *task;
|
||||
int rc = 0;
|
||||
struct ll_inode_info *plli;
|
||||
|
||||
|
@ -1656,10 +1657,11 @@ int do_statahead_enter(struct inode *dir, struct dentry **dentryp,
|
|||
lli->lli_sai = sai;
|
||||
|
||||
plli = ll_i2info(d_inode(parent));
|
||||
rc = PTR_ERR(kthread_run(ll_statahead_thread, parent,
|
||||
"ll_sa_%u", plli->lli_opendir_pid));
|
||||
task = kthread_run(ll_statahead_thread, parent, "ll_sa_%u",
|
||||
plli->lli_opendir_pid);
|
||||
thread = &sai->sai_thread;
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("can't start ll_sa thread, rc: %d\n", rc);
|
||||
dput(parent);
|
||||
lli->lli_opendir_key = NULL;
|
||||
|
|
|
@ -1554,6 +1554,7 @@ static int mdc_ioc_changelog_send(struct obd_device *obd,
|
|||
struct ioc_changelog *icc)
|
||||
{
|
||||
struct changelog_show *cs;
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
|
||||
/* Freed in mdc_changelog_send_thread */
|
||||
|
@ -1571,15 +1572,20 @@ static int mdc_ioc_changelog_send(struct obd_device *obd,
|
|||
* New thread because we should return to user app before
|
||||
* writing into our pipe
|
||||
*/
|
||||
rc = PTR_ERR(kthread_run(mdc_changelog_send_thread, cs,
|
||||
"mdc_clg_send_thread"));
|
||||
if (!IS_ERR_VALUE(rc)) {
|
||||
CDEBUG(D_CHANGELOG, "start changelog thread\n");
|
||||
return 0;
|
||||
task = kthread_run(mdc_changelog_send_thread, cs,
|
||||
"mdc_clg_send_thread");
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("%s: can't start changelog thread: rc = %d\n",
|
||||
obd->obd_name, rc);
|
||||
kfree(cs);
|
||||
} else {
|
||||
rc = 0;
|
||||
CDEBUG(D_CHANGELOG, "%s: started changelog thread\n",
|
||||
obd->obd_name);
|
||||
}
|
||||
|
||||
CERROR("Failed to start changelog thread: %d\n", rc);
|
||||
kfree(cs);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
@ -711,6 +711,7 @@ static int mgc_cleanup(struct obd_device *obd)
|
|||
static int mgc_setup(struct obd_device *obd, struct lustre_cfg *lcfg)
|
||||
{
|
||||
struct lprocfs_static_vars lvars = { NULL };
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
|
||||
ptlrpcd_addref();
|
||||
|
@ -734,10 +735,10 @@ static int mgc_setup(struct obd_device *obd, struct lustre_cfg *lcfg)
|
|||
init_waitqueue_head(&rq_waitq);
|
||||
|
||||
/* start requeue thread */
|
||||
rc = PTR_ERR(kthread_run(mgc_requeue_thread, NULL,
|
||||
"ll_cfg_requeue"));
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
CERROR("%s: Cannot start requeue thread (%d),no more log updates!\n",
|
||||
task = kthread_run(mgc_requeue_thread, NULL, "ll_cfg_requeue");
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("%s: cannot start requeue thread: rc = %d; no more log updates\n",
|
||||
obd->obd_name, rc);
|
||||
goto err_cleanup;
|
||||
}
|
||||
|
|
|
@ -376,17 +376,19 @@ int llog_process_or_fork(const struct lu_env *env,
|
|||
lpi->lpi_catdata = catdata;
|
||||
|
||||
if (fork) {
|
||||
struct task_struct *task;
|
||||
|
||||
/* The new thread can't use parent env,
|
||||
* init the new one in llog_process_thread_daemonize. */
|
||||
lpi->lpi_env = NULL;
|
||||
init_completion(&lpi->lpi_completion);
|
||||
rc = PTR_ERR(kthread_run(llog_process_thread_daemonize, lpi,
|
||||
"llog_process_thread"));
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
task = kthread_run(llog_process_thread_daemonize, lpi,
|
||||
"llog_process_thread");
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("%s: cannot start thread: rc = %d\n",
|
||||
loghandle->lgh_ctxt->loc_obd->obd_name, rc);
|
||||
kfree(lpi);
|
||||
return rc;
|
||||
goto out_lpi;
|
||||
}
|
||||
wait_for_completion(&lpi->lpi_completion);
|
||||
} else {
|
||||
|
@ -394,6 +396,7 @@ int llog_process_or_fork(const struct lu_env *env,
|
|||
llog_process_thread(lpi);
|
||||
}
|
||||
rc = lpi->lpi_rc;
|
||||
out_lpi:
|
||||
kfree(lpi);
|
||||
return rc;
|
||||
}
|
||||
|
|
|
@ -293,6 +293,7 @@ static struct ptlrpc_thread pinger_thread;
|
|||
int ptlrpc_start_pinger(void)
|
||||
{
|
||||
struct l_wait_info lwi = { 0 };
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
|
||||
if (!thread_is_init(&pinger_thread) &&
|
||||
|
@ -303,10 +304,11 @@ int ptlrpc_start_pinger(void)
|
|||
|
||||
strcpy(pinger_thread.t_name, "ll_ping");
|
||||
|
||||
rc = PTR_ERR(kthread_run(ptlrpc_pinger_main, &pinger_thread,
|
||||
"%s", pinger_thread.t_name));
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
CERROR("cannot start thread: %d\n", rc);
|
||||
task = kthread_run(ptlrpc_pinger_main, &pinger_thread,
|
||||
pinger_thread.t_name);
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("cannot start pinger thread: rc = %d\n", rc);
|
||||
return rc;
|
||||
}
|
||||
l_wait_event(pinger_thread.t_ctl_waitq,
|
||||
|
|
|
@ -2255,24 +2255,27 @@ static int ptlrpc_start_hr_threads(void)
|
|||
|
||||
for (j = 0; j < hrp->hrp_nthrs; j++) {
|
||||
struct ptlrpc_hr_thread *hrt = &hrp->hrp_thrs[j];
|
||||
struct task_struct *task;
|
||||
|
||||
rc = PTR_ERR(kthread_run(ptlrpc_hr_main,
|
||||
task = kthread_run(ptlrpc_hr_main,
|
||||
&hrp->hrp_thrs[j],
|
||||
"ptlrpc_hr%02d_%03d",
|
||||
hrp->hrp_cpt,
|
||||
hrt->hrt_id));
|
||||
if (IS_ERR_VALUE(rc))
|
||||
hrt->hrt_id);
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
break;
|
||||
}
|
||||
}
|
||||
wait_event(ptlrpc_hr.hr_waitq,
|
||||
atomic_read(&hrp->hrp_nstarted) == j);
|
||||
if (!IS_ERR_VALUE(rc))
|
||||
continue;
|
||||
|
||||
CERROR("Reply handling thread %d:%d Failed on starting: rc = %d\n",
|
||||
i, j, rc);
|
||||
ptlrpc_stop_hr_threads();
|
||||
return rc;
|
||||
if (rc < 0) {
|
||||
CERROR("cannot start reply handler thread %d:%d: rc = %d\n",
|
||||
i, j, rc);
|
||||
ptlrpc_stop_hr_threads();
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -2374,6 +2377,7 @@ int ptlrpc_start_thread(struct ptlrpc_service_part *svcpt, int wait)
|
|||
struct l_wait_info lwi = { 0 };
|
||||
struct ptlrpc_thread *thread;
|
||||
struct ptlrpc_service *svc;
|
||||
struct task_struct *task;
|
||||
int rc;
|
||||
|
||||
LASSERT(svcpt != NULL);
|
||||
|
@ -2442,9 +2446,10 @@ int ptlrpc_start_thread(struct ptlrpc_service_part *svcpt, int wait)
|
|||
}
|
||||
|
||||
CDEBUG(D_RPCTRACE, "starting thread '%s'\n", thread->t_name);
|
||||
rc = PTR_ERR(kthread_run(ptlrpc_main, thread, "%s", thread->t_name));
|
||||
if (IS_ERR_VALUE(rc)) {
|
||||
CERROR("cannot start thread '%s': rc %d\n",
|
||||
task = kthread_run(ptlrpc_main, thread, "%s", thread->t_name);
|
||||
if (IS_ERR(task)) {
|
||||
rc = PTR_ERR(task);
|
||||
CERROR("cannot start thread '%s': rc = %d\n",
|
||||
thread->t_name, rc);
|
||||
spin_lock(&svcpt->scp_lock);
|
||||
--svcpt->scp_nthrs_starting;
|
||||
|
|
Loading…
Reference in New Issue