LINUX_COMPLETION_H_EXISTS
LINUX_DEFINES_FOR_EACH_PROCESS
LINUX_DEFINES_PREV_TASK
- LINUX_EXPORTS_TASKLIST_LOCK
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
fi
- if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
- AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock])
- fi
if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
fi
#endif
#if defined(AFS_LINUX22_ENV)
+extern rwlock_t tasklist_lock __attribute__((weak));
void
afs_osi_TraverseProcTable()
{
struct task_struct *p;
-
-#ifdef EXPORTED_TASKLIST_LOCK
- read_lock(&tasklist_lock);
-#endif
+ if (&tasklist_lock)
+ read_lock(&tasklist_lock);
#ifdef DEFINED_FOR_EACH_PROCESS
for_each_process(p) if (p->pid) {
#ifdef STRUCT_TASK_STRUCT_HAS_EXIT_STATE
afs_GCPAGs_perproc_func(p);
}
#endif
-#ifdef EXPORTED_TASKLIST_LOCK
- read_unlock(&tasklist_lock);
-#endif
+ if (&tasklist_lock)
+ read_unlock(&tasklist_lock);
}
#endif
CPPFLAGS="$save_CPPFLAGS"])
-AC_DEFUN([LINUX_EXPORTS_TASKLIST_LOCK], [
-AC_MSG_CHECKING(for exported tasklist_lock)
-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_exports_tasklist_lock,
-[
-AC_TRY_COMPILE(
-[#include <linux/modversions.h>],
-[#ifndef __ver_tasklist_lock
-#error tasklist_lock not exported
-#endif],
-ac_cv_linux_exports_tasklist_lock=yes,
-ac_cv_linux_exports_tasklist_lock=no)])
-AC_MSG_RESULT($ac_cv_linux_exports_tasklist_lock)
-CPPFLAGS="$save_CPPFLAGS"])
-
-
AC_DEFUN([LINUX_FS_STRUCT_INODE_HAS_I_CDEV], [
AC_MSG_CHECKING(for i_cdev in struct inode)
save_CPPFLAGS="$CPPFLAGS"
return code;
}
-
+extern rwlock_t tasklist_lock __attribute__((weak));
void
osi_StopListener(void)
{
struct task_struct *listener;
extern int rxk_ListenerPid;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
- read_lock(&tasklist_lock);
-#endif
+ if (&tasklist_lock)
+ read_lock(&tasklist_lock);
listener = find_task_by_pid(rxk_ListenerPid);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
- read_unlock(&tasklist_lock);
-#endif
+ if (&tasklist_lock)
+ read_unlock(&tasklist_lock);
while (rxk_ListenerPid) {
flush_signals(listener);
force_sig(SIGKILL, listener);