Whamcloud - gitweb
b=20530
[fs/lustre-release.git] / lustre / mdd / mdd_device.c
index 48da062..7dc67d1 100644 (file)
@@ -1270,6 +1270,25 @@ struct md_capainfo *md_capainfo(const struct lu_env *env)
 }
 EXPORT_SYMBOL(md_capainfo);
 
+/*
+ * context key constructor/destructor:
+ * mdd_quota_key_init, mdd_quota_key_fini
+ */
+LU_KEY_INIT_FINI(mdd_quota, struct md_quota);
+
+struct lu_context_key mdd_quota_key = {
+        .lct_tags = LCT_SESSION,
+        .lct_init = mdd_quota_key_init,
+        .lct_fini = mdd_quota_key_fini
+};
+
+struct md_quota *md_quota(const struct lu_env *env)
+{
+        LASSERT(env->le_ses != NULL);
+        return lu_context_key_get(env->le_ses, &mdd_quota_key);
+}
+EXPORT_SYMBOL(md_quota);
+
 static int mdd_changelog_user_register(struct mdd_device *mdd, int *id)
 {
         struct llog_ctxt *ctxt;
@@ -1491,7 +1510,8 @@ static int mdd_iocontrol(const struct lu_env *env, struct md_device *m,
 }
 
 /* type constructor/destructor: mdd_type_init, mdd_type_fini */
-LU_TYPE_INIT_FINI(mdd, &mdd_thread_key, &mdd_ucred_key, &mdd_capainfo_key);
+LU_TYPE_INIT_FINI(mdd, &mdd_thread_key, &mdd_ucred_key, &mdd_capainfo_key,
+                  &mdd_quota_key);
 
 const struct md_device_operations mdd_ops = {
         .mdo_statfs         = mdd_statfs,