]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit - fs/quota/quota.c
quota: Ensure qids map to the filesystem
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 30 Jun 2016 21:31:01 +0000 (16:31 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 5 Jul 2016 20:12:05 +0000 (15:12 -0500)
commitd49d37624a1931c2f3b5d0cbe95bd5181cbdc279
treef81e4129a5a393df64b6b674ed9aae83a404f707
parent036d523641c66bef713042894a17f4335f199e49
quota: Ensure qids map to the filesystem

Introduce the helper qid_has_mapping and use it to ensure that the
quota system only considers qids that map to the filesystems
s_user_ns.

In practice for quota supporting filesystems today this is the exact
same check as qid_valid.  As only 0xffffffff aka (qid_t)-1 does not
map into init_user_ns.

Replace the qid_valid calls with qid_has_mapping as values come in
from userspace.  This is harmless today and it prepares the quota
system to work on filesystems with quotas but mounted by unprivileged
users.

Call qid_has_mapping from dqget.  This ensures the passed in qid has a
prepresentation on the underlying filesystem.  Previously this was
unnecessary as filesystesm never had qids that could not map.  With
the introduction of filesystems outside of s_user_ns this will not
remain true.

All of this ensures the quota code never has to deal with qids that
don't map to the underlying filesystem.

Cc: Jan Kara <jack@suse.cz>
Acked-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/quota/dquot.c
fs/quota/quota.c
include/linux/quota.h