userns: Add kprojid_t and associated infrastructure in projid.h
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 30 Aug 2012 08:24:05 +0000 (01:24 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 18 Sep 2012 08:01:37 +0000 (01:01 -0700)
commitf76d207a66c3a53defea67e7d36c3eb1b7d6d61d
tree2d2a459c539d6f0b92e8ca856632e65f6c293af7
parent69552c0c50f3f950f304fb07a4320e46f7f60c21
userns: Add kprojid_t and associated infrastructure in projid.h

Implement kprojid_t a cousin of the kuid_t and kgid_t.

The per user namespace mapping of project id values can be set with
/proc/<pid>/projid_map.

A full compliment of helpers is provided: make_kprojid, from_kprojid,
from_kprojid_munged, kporjid_has_mapping, projid_valid, projid_eq,
projid_eq, projid_lt.

Project identifiers are part of the generic disk quota interface,
although it appears only xfs implements project identifiers currently.

The xfs code allows anyone who has permission to set the project
identifier on a file to use any project identifier so when
setting up the user namespace project identifier mappings I do
not require a capability.

Cc: Dave Chinner <david@fromorbit.com>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/proc/base.c
include/linux/projid.h [new file with mode: 0644]
include/linux/user_namespace.h
kernel/user.c
kernel/user_namespace.c