- struct lustre_disk_dqblk_v2 *dqblk = (struct lustre_disk_dqblk_v2 *)d;
-
- LASSERT(version == LUSTRE_QUOTA_V2);
-
- m->dqb_ihardlimit = le64_to_cpu(dqblk->dqb_ihardlimit);
- m->dqb_isoftlimit = le64_to_cpu(dqblk->dqb_isoftlimit);
- m->dqb_curinodes = le64_to_cpu(dqblk->dqb_curinodes);
- m->dqb_itime = le64_to_cpu(dqblk->dqb_itime);
- m->dqb_bhardlimit = le64_to_cpu(dqblk->dqb_bhardlimit);
- m->dqb_bsoftlimit = le64_to_cpu(dqblk->dqb_bsoftlimit);
- m->dqb_curspace = le64_to_cpu(dqblk->dqb_curspace);
- m->dqb_btime = le64_to_cpu(dqblk->dqb_btime);
+ m->dqb_ihardlimit = DQF_GET(d, version, dqb_ihardlimit);
+ m->dqb_isoftlimit = DQF_GET(d, version, dqb_isoftlimit);
+ m->dqb_curinodes = DQF_GET(d, version, dqb_curinodes);
+ m->dqb_itime = DQF_GET(d, version, dqb_itime);
+ m->dqb_bhardlimit = DQF_GET(d, version, dqb_bhardlimit);
+ m->dqb_bsoftlimit = DQF_GET(d, version, dqb_bsoftlimit);
+ m->dqb_curspace = DQF_GET(d, version, dqb_curspace);
+ m->dqb_btime = DQF_GET(d, version, dqb_btime);
+}
+
+static int check_quota_bounds(struct lustre_mem_dqblk *m,
+ lustre_quota_version_t version)
+{
+ return (version == LUSTRE_QUOTA_V1 &&
+ m->dqb_ihardlimit <= MAX_UL &&
+ m->dqb_isoftlimit <= MAX_UL &&
+ m->dqb_curinodes <= MAX_UL &&
+ m->dqb_bhardlimit <= MAX_UL &&
+ m->dqb_bsoftlimit <= MAX_UL) ||
+ version != LUSTRE_QUOTA_V1;