Ignore SIGSYS when we issue the pioctl syscall, so we don't dump core
when the kernel module hasn't yet been installed on several platforms.
Also, restore the old SIGSYS signal handler afterwards, so we don't
cause any side-effects.
Reviewed-on: http://gerrit.openafs.org/81
Verified-by: Andrew Deason <adeason@sinenomine.net>
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Russ Allbery <rra@stanford.edu>
(cherry picked from commit
4f36dd089a9c7187f94f77516a486245c057f7f4)
Reviewed-on: http://gerrit.openafs.org/274
Tested-by: Andrew Deason <adeason@sinenomine.net>
if (rval)
errcode = rval;
#else
+ /* As kauth/user.c says, handle smoothly the case where no AFS system call
+ * exists (yet). */
+ void (*old)() = signal(SIGSYS, SIG_IGN);
+
errcode = syscall(AFS_SYSCALL, AFSCALL_PIOCTL, path, cmd, cmarg, follow);
+
+ signal(SIGSYS, old);
#endif
return (errcode);