* a client.
*/
LCT_SESSION = 1 << 4,
-
+ /**
+ * A per-request data on OSP device
+ */
+ LCT_OSP_THREAD = 1 << 5,
+ /**
+ * MGS device thread
+ */
+ LCT_MG_THREAD = 1 << 6,
+ /**
+ * Context for local operations
+ */
+ LCT_LOCAL = 1 << 7,
/**
* Set when at least one of keys, having values in this context has
* non-NULL lu_context_key::lct_exit() method. This is used to
RETURN(-ENOMEM);
}
- rc = lu_context_init(&env->le_ctx, LCT_MD_THREAD);
+ rc = lu_context_init(&env->le_ctx, LCT_MD_THREAD | LCT_DT_THREAD);
if (rc) {
OBD_FREE_PTR(thread);
OBD_FREE_PTR(env);
if (lock->l_req_mode == LCK_COS && lock->l_blocking_lock != NULL) {
struct lu_env env;
- rc = lu_env_init(&env, LCT_MD_THREAD);
+ rc = lu_env_init(&env, LCT_LOCAL);
if (unlikely(rc != 0))
CWARN("lu_env initialization failed with rc = %d,"
"cannot start asynchronous commit\n", rc);
.psc_watchdog_factor = MDT_SERVICE_WATCHDOG_FACTOR,
.psc_min_threads = mdt_min_threads,
.psc_max_threads = mdt_max_threads,
- .psc_ctx_tags = LCT_MD_THREAD|LCT_DT_THREAD
+ .psc_ctx_tags = LCT_MD_THREAD
};
m->mdt_mdsc_service =
int rc;
mdt->mdt_opts.mo_cos = !!val;
- rc = lu_env_init(&env, LCT_MD_THREAD);
+ rc = lu_env_init(&env, LCT_LOCAL);
if (unlikely(rc != 0)) {
CWARN("lu_env initialization failed with rc = %d,"
"cannot sync\n", rc);
LU_KEY_FINI(dt_global, struct dt_thread_info);
static struct lu_context_key dt_key = {
- .lct_tags = LCT_MD_THREAD|LCT_DT_THREAD,
+ .lct_tags = LCT_MD_THREAD | LCT_DT_THREAD | LCT_MG_THREAD | LCT_LOCAL,
.lct_init = dt_global_key_init,
.lct_fini = dt_global_key_fini
};
* lu_global_init().
*/
struct lu_context_key lu_global_key = {
- .lct_tags = LCT_MD_THREAD|LCT_DT_THREAD|LCT_CL_THREAD,
+ .lct_tags = LCT_MD_THREAD | LCT_DT_THREAD |
+ LCT_MG_THREAD | LCT_CL_THREAD,
.lct_init = lu_global_key_init,
.lct_fini = lu_global_key_fini
};
LU_KEY_FINI(llod_global, struct llo_thread_info);
static struct lu_context_key llod_key = {
- .lct_tags = LCT_MD_THREAD | LCT_DT_THREAD,
+ .lct_tags = LCT_MD_THREAD,
.lct_init = llod_global_key_init,
.lct_fini = llod_global_key_fini
};
LU_TYPE_INIT_FINI(osd, &osd_key);
struct lu_context_key osd_key = {
- .lct_tags = LCT_DT_THREAD | LCT_MD_THREAD,
+ .lct_tags = LCT_DT_THREAD | LCT_MD_THREAD | LCT_MG_THREAD | LCT_LOCAL,
.lct_init = osd_key_init,
.lct_fini = osd_key_fini,
.lct_exit = osd_key_exit
.ldt_tags = LU_DEVICE_DT,
.ldt_name = LUSTRE_OSD_NAME,
.ldt_ops = &osd_device_type_ops,
- .ldt_ctx_tags = LCT_MD_THREAD|LCT_DT_THREAD
+ .ldt_ctx_tags = LCT_LOCAL,
};
/*
if (rc)
goto stop;
- rc = dt_trans_start(env, lut->lut_bottom, th);
+ rc = dt_trans_start_local(env, lut->lut_bottom, th);
if (rc)
goto stop;
if (lut->lut_bottom == NULL)
return obt_boot_epoch_update(lut);
- rc = lu_env_init(&env, LCT_DT_THREAD);
+ rc = lu_env_init(&env, LCT_LOCAL);
if (rc) {
CERROR("Can't initialize environment rc=%d\n", rc);
return;