Lines Matching defs:group_info

15 struct group_info *groups_alloc(int gidsetsize)
17 struct group_info *gi;
29 void groups_free(struct group_info *group_info)
31 kvfree(group_info);
36 /* export the group_info to a user-space array */
38 const struct group_info *group_info)
42 unsigned int count = group_info->ngroups;
46 gid = from_kgid_munged(user_ns, group_info->gid[i]);
53 /* fill a group_info from a user-space array - it must be allocated already */
54 static int groups_from_user(struct group_info *group_info,
59 unsigned int count = group_info->ngroups;
71 group_info->gid[i] = kgid;
84 void groups_sort(struct group_info *group_info)
86 sort(group_info->gid, group_info->ngroups, sizeof(*group_info->gid),
92 int groups_search(const struct group_info *group_info, kgid_t grp)
96 if (!group_info)
100 right = group_info->ngroups;
103 if (gid_gt(grp, group_info->gid[mid]))
105 else if (gid_lt(grp, group_info->gid[mid]))
116 * @group_info: The group list to install
118 void set_groups(struct cred *new, struct group_info *group_info)
120 put_group_info(new->group_info);
121 get_group_info(group_info);
122 new->group_info = group_info;
129 * @group_info: The group list to impose
134 int set_current_groups(struct group_info *group_info)
146 set_groups(new, group_info);
170 i = cred->group_info->ngroups;
176 if (groups_to_user(grouplist, cred->group_info)) {
200 struct group_info *group_info;
208 group_info = groups_alloc(gidsetsize);
209 if (!group_info)
211 retval = groups_from_user(group_info, grouplist);
213 put_group_info(group_info);
217 groups_sort(group_info);
218 retval = set_current_groups(group_info);
219 put_group_info(group_info);
233 retval = groups_search(cred->group_info, grp);
245 retval = groups_search(cred->group_info, grp);