> What are you actually using the search for?
>
>>From a quick look, it seems that it's purely to answer
> the question "is this process a member of group X?". Is
> that correct?
>
> If so, test_bit() would work nicely.
This could work if we find the max gid, allocate an array of
max_gid/CHAR_BITS + 1 bytes then test_bit, but given the non-contiguity
(is that a word) of group memberships, we'll waste a lot of space on
holes. Now, it could be argued that 10,000 groups are PROBABLY local
enough. Getting the groups back out will be nasty nastiness, though.
perhaps:
if (gidsetsize < (2 * EXEC_PAGESIZE)/sizeof(gid_t)) { /* or something */
/* use kmalloc() */
else
/* use vmalloc() */
thoughts?
-- Tim Hockin Systems Software Engineer Sun Microsystems, Linux Kernel Engineering thockin@sun.com- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/