Linux: Disable syscall probes if we have keyrings
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Thu, 20 May 2010 10:57:20 +0000 (11:57 +0100)
committerRuss Allbery <rra@stanford.edu>
Tue, 25 May 2010 04:15:26 +0000 (21:15 -0700)
commit5219a6b33b8ea7a793d5b0797026abd7b187f85e
tree9e2263a3d63264b04052239e2acfc256b3beb7ff
parent13dba17d5a845475e8c68ae00c4b77fee12d48c6
Linux: Disable syscall probes if we have keyrings

If we are building for are kernel with keyrings, and we can
guarantee that we can make use of those keyrings, then we no longer
need to probe for the syscall table at all. Change our default
behaviour so that when these two conditions are true, syscall probing
is disabled. Both --enable-linux-syscall-probing and
--disable-linux-syscall-probing can be used to override the
autodetection and force things one way or the other.

We have to check that we can use the keyrings because there was a
window in the 2.6 kernel series where keryings were available, but
the key_type_keyring definiton (which we use to create the session
keyring) wasn't exported. In that situation, we attempt to traverse
the process table and use the type of init's session keyring. This
traversal is fragile, and if it fails, keyring PAGs will be disabled.
So, we still want to be able to fall back to patching the syscall
table, if we can, in this case.

FIXES 125215

Change-Id: I11ba5c68fe37609bbd6b9c9f7e7c699334f42ebc
Reviewed-on: http://gerrit.openafs.org/2002
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
acinclude.m4
src/afs/LINUX/osi_probe.c
src/afs/LINUX24/osi_probe.c