Lines Matching refs:group_info
15 struct group_info *groups_alloc(int gidsetsize) in groups_alloc()
17 struct group_info *gi; in groups_alloc()
29 void groups_free(struct group_info *group_info) in groups_free() argument
31 kvfree(group_info); in groups_free()
38 const struct group_info *group_info) in groups_to_user() argument
42 unsigned int count = group_info->ngroups; in groups_to_user()
46 gid = from_kgid_munged(user_ns, group_info->gid[i]); in groups_to_user()
54 static int groups_from_user(struct group_info *group_info, in groups_from_user() argument
59 unsigned int count = group_info->ngroups; in groups_from_user()
71 group_info->gid[i] = kgid; in groups_from_user()
84 void groups_sort(struct group_info *group_info) in groups_sort() argument
86 sort(group_info->gid, group_info->ngroups, sizeof(*group_info->gid), in groups_sort()
92 int groups_search(const struct group_info *group_info, kgid_t grp) in groups_search() argument
96 if (!group_info) in groups_search()
100 right = group_info->ngroups; in groups_search()
103 if (gid_gt(grp, group_info->gid[mid])) in groups_search()
105 else if (gid_lt(grp, group_info->gid[mid])) in groups_search()
118 void set_groups(struct cred *new, struct group_info *group_info) in set_groups() argument
120 put_group_info(new->group_info); in set_groups()
121 get_group_info(group_info); in set_groups()
122 new->group_info = group_info; in set_groups()
134 int set_current_groups(struct group_info *group_info) in set_current_groups() argument
146 set_groups(new, group_info); in set_current_groups()
170 i = cred->group_info->ngroups; in SYSCALL_DEFINE2()
176 if (groups_to_user(grouplist, cred->group_info)) { in SYSCALL_DEFINE2()
200 struct group_info *group_info; in SYSCALL_DEFINE2() local
208 group_info = groups_alloc(gidsetsize); in SYSCALL_DEFINE2()
209 if (!group_info) in SYSCALL_DEFINE2()
211 retval = groups_from_user(group_info, grouplist); in SYSCALL_DEFINE2()
213 put_group_info(group_info); in SYSCALL_DEFINE2()
217 groups_sort(group_info); in SYSCALL_DEFINE2()
218 retval = set_current_groups(group_info); in SYSCALL_DEFINE2()
219 put_group_info(group_info); in SYSCALL_DEFINE2()
233 retval = groups_search(cred->group_info, grp); in in_group_p()
245 retval = groups_search(cred->group_info, grp); in in_egroup_p()