LASSERT(qinfo->qi_version == LUSTRE_QUOTA_V2);
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA &&
+ oqctl->qc_type != UGQUOTA)
+ return -EINVAL;
+
push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
down(&mds->mds_qonoff_sem);
int rc;
struct lvfs_run_ctxt saved;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA &&
+ oqctl->qc_type != UGQUOTA)
+ RETURN(-EINVAL);
+
push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
down(&mds->mds_qonoff_sem);
int rc;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA &&
+ oqctl->qc_type != UGQUOTA)
+ RETURN(-EINVAL);
+
if (!atomic_dec_and_test(&obt->obt_quotachecking)) {
CDEBUG(D_INFO, "other people are doing quotacheck\n");
atomic_inc(&obt->obt_quotachecking);
int rc, rc2;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA &&
+ oqctl->qc_type != UGQUOTA)
+ RETURN(-EINVAL);
+
if (!atomic_dec_and_test(&obt->obt_quotachecking)) {
CDEBUG(D_INFO, "other people are doing quotacheck\n");
atomic_inc(&obt->obt_quotachecking);
int rc;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA)
+ RETURN(-EINVAL);
+
down(&mds->mds_qonoff_sem);
if (qinfo->qi_files[oqctl->qc_type] == NULL) {
rc = -ESRCH;
int rc = 0;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA)
+ RETURN(-EINVAL);
+
down(&mds->mds_qonoff_sem);
if (qinfo->qi_files[oqctl->qc_type] == NULL) {
rc = -ESRCH;
int rc, rc2 = 0, flag = 0;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA)
+ RETURN(-EINVAL);
+
OBD_ALLOC_PTR(oqaq);
if (!oqaq)
RETURN(-ENOMEM);
int rc;
ENTRY;
+ if (oqctl->qc_type != USRQUOTA &&
+ oqctl->qc_type != GRPQUOTA)
+ RETURN(-EINVAL);
+
down(&mds->mds_qonoff_sem);
dqblk->dqb_valid = 0;
if (qinfo->qi_files[oqctl->qc_type] == NULL)
SHOW_QUOTA_USER2="$LFS quota -v -u $TSTUSR2 $DIR"
SHOW_QUOTA_GROUP="$LFS quota -v -g $TSTUSR $DIR"
SHOW_QUOTA_GROUP2="$LFS quota -v -g $TSTUSR2 $DIR"
-SHOW_QUOTA_INFO="$LFS quota -t $DIR"
+SHOW_QUOTA_INFO="$LFS quota -t -u $DIR; $LFS quota -t -g $DIR"
# control the time of tests
cycle=30
}
run_test_with_stat 26 "test for false quota error(bz18491) ======================================"
+test_27() {
+ $LFS quota $TSTUSR $DIR && error "lfs succeeded with no type, but should have failed"
+ $LFS setquota $TSTUSR $DIR && error "lfs succeeded with no type, but should have failed"
+ return 0
+}
+run_test_with_stat 27 "lfs quota/setquota should handle wrong arguments (19612) ================="
+
# turn off quota
test_99()
{
return CMD_HELP;
}
+ if (limit_mask == 0) {
+ fprintf(stderr, "error: at least one limit must be specified\n");
+ return CMD_HELP;
+ }
+
if (optind != argc - 1) {
fprintf(stderr, "error: unexpected parameters encountered\n");
return CMD_HELP;
(qctl.qc_type == USRQUOTA) ? USER : GROUP);
if (rc)
name = "<unknown>";
+ /* lfs quota -u username /path/to/lustre/mount */
} else if (qctl.qc_cmd == LUSTRE_Q_GETQUOTA) {
- if (optind + 2 != argc) {
+ /* options should be followed by u/g-name and mntpoint */
+ if (optind + 2 != argc || qctl.qc_type == UGQUOTA) {
fprintf(stderr, "error: missing quota argument(s)\n");
return CMD_HELP;
}
name, strerror(errno));
return CMD_HELP;
}
- } else if (optind + 1 != argc) {
+ } else if (optind + 1 != argc || qctl.qc_type == UGQUOTA) {
fprintf(stderr, "error: missing quota info argument(s)\n");
return CMD_HELP;
}