diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2011-11-14 18:56:38 -0500 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2012-05-03 06:27:21 -0400 |
commit | ae2975bc3476243b45a1e2344236d7920c268f38 (patch) | |
tree | e4b2a8472f6047734b6e7e2bdc994375b2790323 /include/linux/cred.h | |
parent | 22d917d80e842829d0ca0a561967d728eb1d6303 (diff) |
userns: Convert group_info values from gid_t to kgid_t.
As a first step to converting struct cred to be all kuid_t and kgid_t
values convert the group values stored in group_info to always be
kgid_t values. Unless user namespaces are used this change should
have no effect.
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'include/linux/cred.h')
-rw-r--r-- | include/linux/cred.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/cred.h b/include/linux/cred.h index 2c60ec802678..0ab3cda4a774 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/key.h> | 17 | #include <linux/key.h> |
18 | #include <linux/selinux.h> | 18 | #include <linux/selinux.h> |
19 | #include <linux/atomic.h> | 19 | #include <linux/atomic.h> |
20 | #include <linux/uidgid.h> | ||
20 | 21 | ||
21 | struct user_struct; | 22 | struct user_struct; |
22 | struct cred; | 23 | struct cred; |
@@ -26,14 +27,14 @@ struct inode; | |||
26 | * COW Supplementary groups list | 27 | * COW Supplementary groups list |
27 | */ | 28 | */ |
28 | #define NGROUPS_SMALL 32 | 29 | #define NGROUPS_SMALL 32 |
29 | #define NGROUPS_PER_BLOCK ((unsigned int)(PAGE_SIZE / sizeof(gid_t))) | 30 | #define NGROUPS_PER_BLOCK ((unsigned int)(PAGE_SIZE / sizeof(kgid_t))) |
30 | 31 | ||
31 | struct group_info { | 32 | struct group_info { |
32 | atomic_t usage; | 33 | atomic_t usage; |
33 | int ngroups; | 34 | int ngroups; |
34 | int nblocks; | 35 | int nblocks; |
35 | gid_t small_block[NGROUPS_SMALL]; | 36 | kgid_t small_block[NGROUPS_SMALL]; |
36 | gid_t *blocks[0]; | 37 | kgid_t *blocks[0]; |
37 | }; | 38 | }; |
38 | 39 | ||
39 | /** | 40 | /** |
@@ -66,7 +67,7 @@ extern struct group_info init_groups; | |||
66 | extern void groups_free(struct group_info *); | 67 | extern void groups_free(struct group_info *); |
67 | extern int set_current_groups(struct group_info *); | 68 | extern int set_current_groups(struct group_info *); |
68 | extern int set_groups(struct cred *, struct group_info *); | 69 | extern int set_groups(struct cred *, struct group_info *); |
69 | extern int groups_search(const struct group_info *, gid_t); | 70 | extern int groups_search(const struct group_info *, kgid_t); |
70 | 71 | ||
71 | /* access the groups "array" with this macro */ | 72 | /* access the groups "array" with this macro */ |
72 | #define GROUP_AT(gi, i) \ | 73 | #define GROUP_AT(gi, i) \ |