diff --git a/src/sys/pioctl.c b/src/sys/pioctl.c index 1df62ad397..b1d64e5f96 100644 --- a/src/sys/pioctl.c +++ b/src/sys/pioctl.c @@ -16,6 +16,7 @@ #include #include +#include #include #if defined(AFS_SUN_ENV) && !defined(AFS_SUN5_ENV) @@ -48,10 +49,10 @@ int lpioctl(char *path, int cmd, char *cmarg, int follow) { int errcode, rval; -#if defined(AFS_FBSD_ENV) +#ifndef AFS_LINUX20_ENV /* As kauth/user.c says, handle smoothly the case where no AFS system call - * exists (yet). Why don't more platforms have trouble here? Matt */ - sig_t old = (int (*)())signal(SIGSYS, SIG_IGN); + * exists (yet). */ + sig_t old = signal(SIGSYS, SIG_IGN); #endif #if defined(AFS_LINUX20_ENV) @@ -70,6 +71,10 @@ lpioctl(char *path, int cmd, char *cmarg, int follow) errcode = syscall(AFS_SYSCALL, AFSCALL_PIOCTL, path, cmd, cmarg, follow); #endif +#ifndef AFS_LINUX20_ENV + signal(SIGSYS, old); +#endif + return (errcode); }