Do not require AFS_SYSCALL 37/11937/11
authorAndrew Deason <adeason@sinenomine.net>
Wed, 11 Mar 2015 17:55:42 +0000 (12:55 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 10 Feb 2018 15:29:00 +0000 (10:29 -0500)
commited513bb516acdb28fc6bbf01714ef2e1df422a8a
treef4f5f4f7022124242dbed3c2f2a1de8cdb9a5d2b
parentf5794e029903db79f345f42582230a1fd0f7d823
Do not require AFS_SYSCALL

Various parts of the code make use of AFS_SYSCALL in order to
communicate with the libafs kernel module. Even though most modern
platforms do not use an actual syscall anymore (instead using an
ioctl-based method or similar to emulate the traditional AFS syscall),
some code paths rely on AFS_SYSCALL as a fallback, or just use
AFS_SYSCALL because they were never updated to use the newer methods.

Even platforms that do not use the traditional AFS syscall still
define the AFS_SYSCALL number, in case someone still uses it for
something. However, some platforms do not have an AFS syscall number;
there is no "slot" allocated to us, so we cannot safely issue any
syscall.

For those platforms, we must not reference AFS_SYSCALL at all, or we
will fail to build. So, get rid of these references to AFS_SYSCALL if
it is not defined. In some places, we can just avoid the relevant code
making the syscall. In a few other places, we just pretend like the
libafs kernel module was not loaded and yield an ENOSYS error, to make
the code simpler.

Change-Id: I38e033caf7149c2b1b567f9877221ca8551db2ea
Reviewed-on: https://gerrit.openafs.org/11937
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Ian Wienand <iwienand@redhat.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/afsd/afsd_kernel.c
src/afsd/vsys.c
src/rx/rx_user.c
src/sys/pioctl.c
src/sys/setpag.c
src/venus/fstrace.c
src/viced/viced.c
src/volser/volmain.c