qctl.qc_cmd = LUSTRE_Q_QUOTAOFF;
qctl.qc_type = check_type;
rc = llapi_quotactl(mnt, &qctl);
- if (rc) {
+ if (rc && errno != EALREADY) {
fprintf(stderr, "quota off failed: %s\n", strerror(errno));
return rc;
}
qctl.qc_cmd = LUSTRE_Q_QUOTAON;
qctl.qc_type = check_type;
rc = llapi_quotactl(mnt, &qctl);
- if (rc) {
+ if (rc && errno != EALREADY) {
if (*obd_type)
fprintf(stderr, "%s %s ", (char *)qctl.obd_type,
obd_uuid2str(&qctl.obd_uuid));
rc = llapi_quotactl(mnt, &qctl);
if (rc) {
- if (*obd_type)
- fprintf(stderr, "%s %s ", obd_type,
- obd_uuid2str(&qctl.obd_uuid));
- fprintf(stderr, "%s failed: %s\n", argv[0], strerror(errno));
- return rc;
+ if (errno == EALREADY) {
+ fprintf(stderr, "\n%s quotas are enabled already.\n",
+ qctl.qc_type == 0x02 ? "user/group" :
+ (qctl.qc_type == 0x00 ? "user" : "group"));
+ rc = 0;
+ } else {
+ if (*obd_type)
+ fprintf(stderr, "%s %s ", obd_type,
+ obd_uuid2str(&qctl.obd_uuid));
+ fprintf(stderr, "%s failed: %s\n", argv[0],
+ strerror(errno));
+ }
}
- return 0;
+ return rc;
}
static int lfs_quotaoff(int argc, char **argv)
mnt = argv[optind];
rc = llapi_quotactl(mnt, &qctl);
- if (rc == -1 && errno == ESRCH) {
- fprintf(stderr, "\n%s quotas are not enabled.\n",
- qctl.qc_type == 0x00 ? "user" : "group");
- return 0;
- }
if (rc) {
- if (*obd_type)
- fprintf(stderr, "%s %s ", obd_type,
- obd_uuid2str(&qctl.obd_uuid));
- fprintf(stderr, "quotaoff failed: %s\n", strerror(errno));
- return rc;
+ if (errno == EALREADY) {
+ fprintf(stderr, "\n%s quotas are disabled already.\n",
+ qctl.qc_type == 0x02 ? "user/group" :
+ (qctl.qc_type == 0x00 ? "user" : "group"));
+ rc = 0;
+ } else {
+ if (*obd_type)
+ fprintf(stderr, "%s %s ", obd_type,
+ obd_uuid2str(&qctl.obd_uuid));
+ fprintf(stderr, "quotaoff failed: %s\n",
+ strerror(errno));
+ }
}
- return 0;
+ return rc;
}
static int lfs_quotainv(int argc, char **argv)
mnt = argv[optind];
rc1 = llapi_quotactl(mnt, &qctl);
- if (rc1 == -1 && errno == ESRCH) {
+ if (rc1 == -1 && errno == EALREADY) {
fprintf(stderr, "\n%s quotas are not enabled.\n",
qctl.qc_type == USRQUOTA ? "user" : "group");
goto out;