LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
+ LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
LINUX_WHICH_MODULES
if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then
AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
fi
+ if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then
+ AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
+ fi
:
fi
esac
#endif
#ifdef DEFINED_FOR_EACH_PROCESS
for_each_process(p) if (p->pid) {
+#ifdef STRUCT_TASK_STRUCT_HAS_EXIT_STATE
+ if (p->exit_state)
+ continue;
+#else
if (p->state & TASK_ZOMBIE)
continue;
+#endif
afs_GCPAGs_perproc_func(p);
}
#else
for_each_task(p) if (p->pid) {
+#ifdef STRUCT_TASK_STRUCT_HAS_EXIT_STATE
+ if (p->exit_state)
+ continue;
+#else
if (p->state & TASK_ZOMBIE)
continue;
+#endif
afs_GCPAGs_perproc_func(p);
}
#endif
ac_cv_linux_sched_struct_task_struct_has_signal_rlim=no)])
AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_signal_rlim)
CPPFLAGS="$save_CPPFLAGS"])
+
+AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE], [
+AC_MSG_CHECKING(for exit_state in struct task_struct)
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-I${LINUX_KERNEL_PATH}/include -I${LINUX_KERNEL_PATH}/include/asm/mach-${SUBARCH} -D__KERNEL__ $CPPFLAGS"
+AC_CACHE_VAL(ac_cv_linux_sched_struct_task_struct_has_exit_state,
+[
+AC_TRY_COMPILE(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printf("%d\n", _tsk.exit_state);],
+ac_cv_linux_sched_struct_task_struct_has_exit_state=yes,
+ac_cv_linux_sched_struct_task_struct_has_exit_state=no)])
+AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_exit_state)
+CPPFLAGS="$save_CPPFLAGS"])