X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Fcapa.c;h=b81351f7b0c6021ac155633508eacae73a0a0fb7;hp=47f52d02f58eb2aa6006cb1cf81de07e71f7a524;hb=9b3b6c106b53c2c391d5e4347875a1cd3e150600;hpb=3917e62018878dfffac59ceed70f20b0419945d3 diff --git a/lustre/obdclass/capa.c b/lustre/obdclass/capa.c index 47f52d0..b81351f 100644 --- a/lustre/obdclass/capa.c +++ b/lustre/obdclass/capa.c @@ -408,3 +408,44 @@ void _debug_capa(struct lustre_capa *c, va_end(args); } EXPORT_SYMBOL(_debug_capa); + +/* + * context key constructor/destructor: + * lu_capainfo_key_init, lu_capainfo_key_fini + */ +LU_KEY_INIT_FINI(lu_capainfo, struct lu_capainfo); + +struct lu_context_key lu_capainfo_key = { + .lct_tags = LCT_SESSION, + .lct_init = lu_capainfo_key_init, + .lct_fini = lu_capainfo_key_fini +}; + +struct lu_capainfo *lu_capainfo_get(const struct lu_env *env) +{ + /* NB, in mdt_init0 */ + if (env->le_ses == NULL) + return NULL; + return lu_context_key_get(env->le_ses, &lu_capainfo_key); +} +EXPORT_SYMBOL(lu_capainfo_get); + +/** + * Initialization of lu_capainfo_key data. + */ +int lu_capainfo_init(void) +{ + int rc; + + LU_CONTEXT_KEY_INIT(&lu_capainfo_key); + rc = lu_context_key_register(&lu_capainfo_key); + return rc; +} + +/** + * Dual to lu_capainfo_init(). + */ +void lu_capainfo_fini(void) +{ + lu_context_key_degister(&lu_capainfo_key); +}