Quotas are set in bytes for cephfs subvolumes.
This could be simpler if done in a human readable
size like K/Ki, M/Mi, G/Gi or T/Ti
Fixes: https://tracker.ceph.com/issues/55940
Signed-off-by: dparmar18 <dparmar@redhat.com>
(cherry picked from commit
2d43fede1e1322523ec0029960d9ebf70a8f8e84)
return r;
}
} else if (name == "quota.max_bytes") {
- int64_t q = boost::lexical_cast<int64_t>(value);
- if (q < 0)
+ string cast_err;
+ int64_t q = strict_iec_cast<int64_t>(value, &cast_err);
+ if(!cast_err.empty()) {
+ dout(10) << __func__ << ": failed to parse quota.max_bytes: "
+ << cast_err << dendl;
return -CEPHFS_EINVAL;
+ }
quota->max_bytes = q;
} else if (name == "quota.max_files") {
int64_t q = boost::lexical_cast<int64_t>(value);