X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fquota%2Fqsd_lib.c;h=c535f90740ed6bff4b91ecf4dc10fcff9a4e62c0;hb=c232a80d95849b8e776ae6b738585eacbfdc3612;hp=f2c460ae213abf1797253afe978f0f01f4c74091;hpb=6601661f96325b4971d0d1cb0be0fa01cc2ddc97;p=fs%2Flustre-release.git diff --git a/lustre/quota/qsd_lib.c b/lustre/quota/qsd_lib.c index f2c460a..c535f90 100644 --- a/lustre/quota/qsd_lib.c +++ b/lustre/quota/qsd_lib.c @@ -90,12 +90,14 @@ static int qsd_state_seq_show(struct seq_file *m, void *data) if (strlen(enabled) == 0) strcat(enabled, "none"); + /* 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", - qsd->qsd_svname, qsd->qsd_pool_id, + qsd->qsd_svname, 0, qsd->qsd_is_md ? "md" : "dt", enabled, qsd->qsd_exp_valid ? "setup" : "not setup yet"); @@ -166,6 +168,7 @@ static ssize_t qsd_enabled_seq_write(struct file *file, if (copy_from_user(valstr, buffer, count)) GOTO(out, count = -EFAULT); + valstr[sizeof(valstr) - 1] = 0; if (strchr(valstr, 'u')) enabled |= BIT(USRQUOTA); if (strchr(valstr, 'g')) @@ -472,8 +475,7 @@ static int qsd_qtype_init(const struct lu_env *env, struct qsd_instance *qsd, thread_set_flags(&qqi->qqi_reint_thread, SVC_STOPPED); INIT_LIST_HEAD(&qqi->qqi_deferred_glb); INIT_LIST_HEAD(&qqi->qqi_deferred_slv); - lquota_generate_fid(&qqi->qqi_fid, qsd->qsd_pool_id, - QSD_RES_TYPE(qsd), qtype); + lquota_generate_fid(&qqi->qqi_fid, QSD_RES_TYPE(qsd), qtype); /* open accounting object */ LASSERT(qqi->qqi_acct_obj == NULL); @@ -589,14 +591,6 @@ void qsd_fini(const struct lu_env *env, struct qsd_instance *qsd) qsd->qsd_ns = NULL; } - /* free per-quota type data */ - for (qtype = USRQUOTA; qtype < LL_MAXQUOTAS; qtype++) - qsd_qtype_fini(env, qsd, qtype); - - /* deregister connection to the quota master */ - qsd->qsd_exp_valid = false; - lustre_deregister_lwp_item(&qsd->qsd_exp); - /* release per-filesystem information */ if (qsd->qsd_fsinfo != NULL) { mutex_lock(&qsd->qsd_fsinfo->qfs_mutex); @@ -607,6 +601,14 @@ void qsd_fini(const struct lu_env *env, struct qsd_instance *qsd) qsd->qsd_fsinfo = NULL; } + /* free per-quota type data */ + for (qtype = USRQUOTA; qtype < LL_MAXQUOTAS; qtype++) + qsd_qtype_fini(env, qsd, qtype); + + /* deregister connection to the quota master */ + qsd->qsd_exp_valid = false; + lustre_deregister_lwp_item(&qsd->qsd_exp); + /* release quota root directory */ if (qsd->qsd_root != NULL) { dt_object_put(env, qsd->qsd_root); @@ -680,11 +682,6 @@ struct qsd_instance *qsd_init(const struct lu_env *env, char *svname, lu_ref_add(&dev->dd_lu_dev.ld_reference, "qsd", qsd); qsd->qsd_dev = dev; - /* we only support pool ID 0 (default data or metadata pool) for the - * time being. A different pool ID could be assigned to this target via - * the configuration log in the future */ - qsd->qsd_pool_id = 0; - /* get fsname from svname */ rc = server_name2fsname(svname, qti->qti_buf, NULL); if (rc) {