int client_obd_cleanup(struct obd_device *obddev)
{
- ENTRY;
+ ENTRY;
- ldlm_namespace_free_post(obddev->obd_namespace);
- obddev->obd_namespace = NULL;
+ ldlm_namespace_free_post(obddev->obd_namespace);
+ obddev->obd_namespace = NULL;
- LASSERT(obddev->u.cli.cl_import == NULL);
+ obd_cleanup_client_import(obddev);
+ LASSERT(obddev->u.cli.cl_import == NULL);
- ldlm_put_ref();
- RETURN(0);
+ ldlm_put_ref();
+ RETURN(0);
}
EXPORT_SYMBOL(client_obd_cleanup);
static int mgc_setup(struct obd_device *obd, struct lustre_cfg *lcfg)
{
- int rc;
- ENTRY;
+ int rc;
+ ENTRY;
rc = ptlrpcd_addref();
if (rc < 0)
RETURN(rc);
- rc = client_obd_setup(obd, lcfg);
- if (rc)
- GOTO(err_decref, rc);
+ rc = client_obd_setup(obd, lcfg);
+ if (rc)
+ GOTO(err_decref, rc);
- /* liblustre only support null flavor to MGS */
- obd->u.cli.cl_flvr_mgc.sf_rpc = SPTLRPC_FLVR_NULL;
+ /* liblustre only support null flavor to MGS */
+ obd->u.cli.cl_flvr_mgc.sf_rpc = SPTLRPC_FLVR_NULL;
- rc = obd_llog_init(obd, &obd->obd_olg, obd, NULL);
- if (rc) {
- CERROR("failed to setup llogging subsystems\n");
- GOTO(err_cleanup, rc);
- }
+ rc = obd_llog_init(obd, &obd->obd_olg, obd, NULL);
+ if (rc) {
+ CERROR("failed to setup llogging subsystems\n");
+ GOTO(err_cleanup, rc);
+ }
- RETURN(rc);
+ RETURN(rc);
err_cleanup:
- client_obd_cleanup(obd);
+ client_obd_cleanup(obd);
err_decref:
- ptlrpcd_decref();
- RETURN(rc);
+ ptlrpcd_decref();
+ RETURN(rc);
}
static int mgc_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage)
{
struct lprocfs_static_vars lvars;
int rc;
- ENTRY;
+ ENTRY;
rc = ptlrpcd_addref();
if (rc < 0)
RETURN(rc);
- rc = client_obd_setup(obd, lcfg);
- if (rc)
- GOTO(err_decref, rc);
+ rc = client_obd_setup(obd, lcfg);
+ if (rc)
+ GOTO(err_decref, rc);
rc = mgc_llog_init(NULL, obd);
- if (rc) {
- CERROR("failed to setup llogging subsystems\n");
- GOTO(err_cleanup, rc);
- }
+ if (rc) {
+ CERROR("failed to setup llogging subsystems\n");
+ GOTO(err_cleanup, rc);
+ }
- lprocfs_mgc_init_vars(&lvars);
- lprocfs_obd_setup(obd, lvars.obd_vars);
- sptlrpc_lprocfs_cliobd_attach(obd);
+ lprocfs_mgc_init_vars(&lvars);
+ lprocfs_obd_setup(obd, lvars.obd_vars);
+ sptlrpc_lprocfs_cliobd_attach(obd);
- if (cfs_atomic_inc_return(&mgc_count) == 1) {
+ if (cfs_atomic_inc_return(&mgc_count) == 1) {
rq_state = 0;
init_waitqueue_head(&rq_waitq);
}
/* rc is the task_struct pointer of mgc_requeue_thread. */
rc = 0;
- }
+ }
- RETURN(rc);
+ RETURN(rc);
err_cleanup:
- client_obd_cleanup(obd);
+ client_obd_cleanup(obd);
err_decref:
- ptlrpcd_decref();
- RETURN(rc);
+ ptlrpcd_decref();
+ RETURN(rc);
}
/* based on ll_mdc_blocking_ast */
lustre_cfg_free(lcfg);
if (rc)
client_obd_cleanup(lwp->lpd_obd);
+
RETURN(rc);
}
imp->imp_rq_pool = NULL;
}
- obd_cleanup_client_import(m->lpd_obd);
-
LASSERT(m->lpd_obd);
ptlrpc_lprocfs_unregister_obd(m->lpd_obd);
lprocfs_obd_cleanup(m->lpd_obd);
out_proc:
ptlrpc_lprocfs_unregister_obd(obd);
lprocfs_obd_cleanup(obd);
- obd_cleanup_client_import(obd);
if (m->opd_symlink)
lprocfs_remove(&m->opd_symlink);
client_obd_cleanup(obd);
imp->imp_rq_pool = NULL;
}
- obd_cleanup_client_import(m->opd_obd);
-
if (m->opd_symlink)
lprocfs_remove(&m->opd_symlink);