* enforced here (via procfs) */
int qsd_timeout;
+ /* count of qunit updates during glimpse */
+ int qsd_glimpse_refresh;
+
unsigned long qsd_is_md:1, /* managing quota for mdt */
qsd_started:1, /* instance is now started */
- qsd_prepared:1, /* qsd_prepare() successfully
- * called */
+ qsd_prepared:1, /* qsd_prepare() succeeded */
qsd_exp_valid:1,/* qsd_exp is now valid */
qsd_stopping:1, /* qsd_instance is stopping */
qsd_updating:1, /* qsd is updating record */
qsd_exclusive:1, /* upd exclusive with reint */
qsd_root_prj_enable:1;
-
};
/*
/* TODO: further pool ID should be removed or
* replaced with pool Name */
seq_printf(m, "target name: %s\n"
- "pool ID: %d\n"
- "type: %s\n"
- "quota enabled: %s\n"
- "conn to master: %s\n",
+ "pool ID: %d\n"
+ "type: %s\n"
+ "quota enabled: %s\n"
+ "conn to master: %s\n"
+ "glimpse_refresh: %d\n",
qsd->qsd_svname, 0,
qsd->qsd_is_md ? "md" : "dt", enabled,
- qsd->qsd_exp_valid ? "setup" : "not setup yet");
+ qsd->qsd_exp_valid ? "setup" : "not setup yet",
+ qsd->qsd_glimpse_refresh);
if (qsd->qsd_prepared) {
memset(enabled, 0, sizeof(enabled));
* up or eviction)
*/
if (!(lock->l_flags & LDLM_FL_LOCAL_ONLY)) {
- /* allocate environment */
- OBD_ALLOC_PTR(env);
- if (!env) {
- lqe_putref(lqe);
+ env = lu_env_find();
+ if (env)
+ rc = qsd_adjust(env, lqe);
+ else
rc = -ENOMEM;
- break;
- }
-
- /* initialize environment */
- rc = lu_env_init(env, LCT_DT_THREAD);
- if (rc) {
- OBD_FREE_PTR(env);
- lqe_putref(lqe);
- break;
- }
-
- rc = qsd_adjust(env, lqe);
-
- lu_env_fini(env);
- OBD_FREE_PTR(env);
}
/* release lqe reference grabbed by qsd_id_ast_data_get() */
lqe_write_lock(lqe);
lvb->lvb_id_rel = 0;
if (desc->gl_qunit != 0 && desc->gl_qunit != lqe->lqe_qunit) {
+ struct lu_env *env;
long long space;
/* extract new qunit from glimpse request */
qsd_set_qunit(lqe, desc->gl_qunit);
+ lqe_write_unlock(lqe);
+ env = lu_env_find();
+ if (env)
+ qsd_refresh_usage(env, lqe);
+ lqe_write_lock(lqe);
+ lqe2qqi(lqe)->qqi_qsd->qsd_glimpse_refresh++;
+
space = lqe->lqe_granted - lqe->lqe_pending_rel;
space -= lqe->lqe_usage;
space -= lqe->lqe_pending_write + lqe->lqe_waiting_write;