Re: [BK PATCH 1/2] Remove NGROUPS hardlimit (resend w/o qsort)

Tim Hockin
2002-11-15T02:26:36Z

> 10,000 bits isn't much. Maybe:

That's 10000 USED bits. Remember groups are non-contiguously allocated. If
a task is a member of just groups 32767 and 65535, you'll get one bit per
page used, and when they call getgroups() you need to pull it apart and
return an array of gid_t.

> - add `char groups[16]' to task_struct
>
> - add `struct page *groups_page' to task_struct
>
> - then
> if (getsetsize <= 256)
> use current->groups[] /* 256 groups max */
> else
> use current->groups_page; /* 32768 groups max */