[OpenAFS] New FC4 Kernel == Can't Find System Call Table
Jeffrey Hutzelman
jhutz@cmu.edu
Tue, 07 Mar 2006 15:05:21 -0500
On Sunday, March 05, 2006 09:34:25 PM -0500 Derrick J Brashear
<shadow@dementia.org> wrote:
> On Sun, 5 Mar 2006, Steve Roseman wrote:
>
>> As it is now (post FC4-1637), PAGs don't work. (That broke our web
>> server.)
PAG's work just fine. What doesn't work is the hackery AFS uses to keep
you from losing your PAG across a setgroups() call. This is because to do
that, we must modify the contents of the system call table, which we can't
do while it is in a read-only data segment.
> Well, you could of course just recompile the kernel and make
> sys_call_table exported again, which would fix it all very quickly.
This won't help, because the problem is not that the symbol is not
exported. The problem is that it's in a read-only data segment, so even if
we know where it is, we can't modify it. To work around this, you patch
your kernel to move sys_call_table back to .data, or whereever it is
supposed to be for your platform. Hopefully in a future version we'll be
able to find it even if it's in .rodata, but you'll still have to recompile
your kernel with CONFIG_DEBUG_RODATA turned off in order for OpenAFS to be
able to trap setgroups().
-- Jeff