unsigned int hashent = hashfn(sb, qid);
struct dquot *dquot, *empty = NULL;
- if (!qid_has_mapping(sb->s_user_ns, qid))
- return ERR_PTR(-EINVAL);
-
if (!sb_has_quota_active(sb, qid.type))
return ERR_PTR(-ESRCH);
we_slept:
if (!sb->s_qcop->get_dqblk)
return -ENOSYS;
qid = make_kqid(current_user_ns(), type, id);
- if (!qid_has_mapping(sb->s_user_ns, qid))
+ if (!qid_valid(qid))
return -EINVAL;
ret = sb->s_qcop->get_dqblk(sb, qid, &fdq);
if (ret)
if (!sb->s_qcop->set_dqblk)
return -ENOSYS;
qid = make_kqid(current_user_ns(), type, id);
- if (!qid_has_mapping(sb->s_user_ns, qid))
+ if (!qid_valid(qid))
return -EINVAL;
copy_from_if_dqblk(&fdq, &idq);
return sb->s_qcop->set_dqblk(sb, qid, &fdq);
if (!sb->s_qcop->set_dqblk)
return -ENOSYS;
qid = make_kqid(current_user_ns(), type, id);
- if (!qid_has_mapping(sb->s_user_ns, qid))
+ if (!qid_valid(qid))
return -EINVAL;
/* Are we actually setting timer / warning limits for all users? */
if (from_kqid(&init_user_ns, qid) == 0 &&
if (!sb->s_qcop->get_dqblk)
return -ENOSYS;
qid = make_kqid(current_user_ns(), type, id);
- if (!qid_has_mapping(sb->s_user_ns, qid))
+ if (!qid_valid(qid))
return -EINVAL;
ret = sb->s_qcop->get_dqblk(sb, qid, &qdq);
if (ret)
return kqid;
}
-/**
- * qid_has_mapping - Report if a qid maps into a user namespace.
- * @ns: The user namespace to see if a value maps into.
- * @qid: The kernel internal quota identifier to test.
- */
-static inline bool qid_has_mapping(struct user_namespace *ns, struct kqid qid)
-{
- return from_kqid(ns, qid) != (qid_t) -1;
-}
-
extern spinlock_t dq_data_lock;