123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #include <linux/fs.h>
- #include <linux/quota.h>
- #include <linux/export.h>
- bool qid_eq(struct kqid left, struct kqid right)
- {
- if (left.type != right.type)
- return false;
- switch(left.type) {
- case USRQUOTA:
- return uid_eq(left.uid, right.uid);
- case GRPQUOTA:
- return gid_eq(left.gid, right.gid);
- case PRJQUOTA:
- return projid_eq(left.projid, right.projid);
- default:
- BUG();
- }
- }
- EXPORT_SYMBOL(qid_eq);
- bool qid_lt(struct kqid left, struct kqid right)
- {
- if (left.type < right.type)
- return true;
- if (left.type > right.type)
- return false;
- switch (left.type) {
- case USRQUOTA:
- return uid_lt(left.uid, right.uid);
- case GRPQUOTA:
- return gid_lt(left.gid, right.gid);
- case PRJQUOTA:
- return projid_lt(left.projid, right.projid);
- default:
- BUG();
- }
- }
- EXPORT_SYMBOL(qid_lt);
- qid_t from_kqid(struct user_namespace *targ, struct kqid kqid)
- {
- switch (kqid.type) {
- case USRQUOTA:
- return from_kuid(targ, kqid.uid);
- case GRPQUOTA:
- return from_kgid(targ, kqid.gid);
- case PRJQUOTA:
- return from_kprojid(targ, kqid.projid);
- default:
- BUG();
- }
- }
- EXPORT_SYMBOL(from_kqid);
- qid_t from_kqid_munged(struct user_namespace *targ, struct kqid kqid)
- {
- switch (kqid.type) {
- case USRQUOTA:
- return from_kuid_munged(targ, kqid.uid);
- case GRPQUOTA:
- return from_kgid_munged(targ, kqid.gid);
- case PRJQUOTA:
- return from_kprojid_munged(targ, kqid.projid);
- default:
- BUG();
- }
- }
- EXPORT_SYMBOL(from_kqid_munged);
- bool qid_valid(struct kqid qid)
- {
- switch (qid.type) {
- case USRQUOTA:
- return uid_valid(qid.uid);
- case GRPQUOTA:
- return gid_valid(qid.gid);
- case PRJQUOTA:
- return projid_valid(qid.projid);
- default:
- BUG();
- }
- }
- EXPORT_SYMBOL(qid_valid);
|