=================================================================== RCS file: /cvs/openafs/acinclude.m4,v retrieving revision 1.114.2.101 retrieving revision 1.114.2.102 diff -u -r1.114.2.101 -r1.114.2.102 --- openafs/acinclude.m4 2008/06/03 02:54:34 1.114.2.101 +++ openafs/acinclude.m4 2008/06/09 03:39:42 1.114.2.102 @@ -600,6 +600,8 @@ LINUX_KBUILD_USES_EXTRA_CFLAGS LINUX_KERNEL_COMPILE_WORKS + LINUX_EXPORTS_FIND_TASK_BY_PID + LINUX_EXPORTS_PROC_ROOT_FS LINUX_HAVE_CURRENT_KERNEL_TIME LINUX_KMEM_CACHE_INIT LINUX_HAVE_KMEM_CACHE_T =================================================================== RCS file: /cvs/openafs/src/afs/LINUX/osi_groups.c,v retrieving revision 1.25.2.15 retrieving revision 1.25.2.16 diff -u -r1.25.2.15 -r1.25.2.16 --- openafs/src/afs/LINUX/osi_groups.c 2008/04/19 21:56:11 1.25.2.15 +++ openafs/src/afs/LINUX/osi_groups.c 2008/06/09 03:39:44 1.25.2.16 @@ -20,7 +20,7 @@ #endif RCSID - ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.15 2008/04/19 21:56:11 shadow Exp $"); + ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.25.2.16 2008/06/09 03:39:44 shadow Exp $"); #include "afs/sysincludes.h" #include "afsincludes.h" @@ -646,7 +646,11 @@ # endif rcu_read_lock(); # endif +#if defined(EXPORTED_FIND_TASK_BY_PID) p = find_task_by_pid(1); +#else + p = find_task_by_vpid(1); +#endif if (p && p->user->session_keyring) __key_type_keyring = p->user->session_keyring->type; # ifdef EXPORTED_TASKLIST_LOCK =================================================================== RCS file: /cvs/openafs/src/afs/LINUX/osi_module.c,v retrieving revision 1.52.2.29 retrieving revision 1.52.2.30 diff -u -r1.52.2.29 -r1.52.2.30 --- openafs/src/afs/LINUX/osi_module.c 2007/10/24 18:09:50 1.52.2.29 +++ openafs/src/afs/LINUX/osi_module.c 2008/06/09 03:39:44 1.52.2.30 @@ -15,7 +15,7 @@ #include "afs/param.h" RCSID - ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.29 2007/10/24 18:09:50 shadow Exp $"); + ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.30 2008/06/09 03:39:44 shadow Exp $"); #include /* early to avoid printf->printk mapping */ #include "afs/sysincludes.h" @@ -237,8 +237,16 @@ { struct proc_dir_entry *entry1; struct proc_dir_entry *entry2; +#if !defined(EXPORTED_PROC_ROOT_FS) + char path[64]; +#endif +#if defined(EXPORTED_PROC_ROOT_FS) openafs_procfs = proc_mkdir(PROC_FSDIRNAME, proc_root_fs); +#else + sprintf(path, "fs/%s", PROC_FSDIRNAME); + openafs_procfs = proc_mkdir(path, NULL); +#endif entry1 = create_proc_entry(PROC_SYSCALL_NAME, 0666, openafs_procfs); entry1->proc_fops = &afs_syscall_fops; @@ -263,9 +271,18 @@ static void afsproc_exit(void) { +#if !defined(EXPORTED_PROC_ROOT_FS) + char path[64]; +#endif + +#if defined(EXPORTED_PROC_ROOT_FS) + remove_proc_entry(PROC_FSDIRNAME, proc_root_fs); +#else + sprintf(path, "fs/%s", PROC_FSDIRNAME); + remove_proc_entry(path, NULL); +#endif remove_proc_entry(PROC_CELLSERVDB_NAME, openafs_procfs); remove_proc_entry(PROC_SYSCALL_NAME, openafs_procfs); - remove_proc_entry(PROC_FSDIRNAME, proc_root_fs); #if defined(NEED_IOCTL32) && !defined(HAVE_COMPAT_IOCTL) if (ioctl32_done) unregister_ioctl32_conversion(VIOC_SYSCALL32); =================================================================== RCS file: /cvs/openafs/src/cf/linux-test4.m4,v retrieving revision 1.20.2.48 retrieving revision 1.20.2.49 diff -u -r1.20.2.48 -r1.20.2.49 --- openafs/src/cf/linux-test4.m4 2008/05/20 20:39:53 1.20.2.48 +++ openafs/src/cf/linux-test4.m4 2008/06/09 03:39:44 1.20.2.49 @@ -1005,3 +1005,30 @@ AC_DEFINE([EXPORTED_RCU_READ_LOCK], 1, [define if rcu_read_lock() is usable]) fi]) +AC_DEFUN([LINUX_EXPORTS_FIND_TASK_BY_PID], [ + AC_MSG_CHECKING([if find_task_by_pid is usable]) + AC_CACHE_VAL([ac_cv_linux_exports_find_task_by_pid], [ + AC_TRY_KBUILD( +[#include ], +[pid_t p; +find_task_by_pid(p);], + ac_cv_linux_exports_find_task_by_pid=yes, + ac_cv_linux_exports_find_task_by_pid=no)]) + AC_MSG_RESULT($ac_cv_linux_exports_find_task_by_pid) + if test "x$ac_cv_linux_exports_find_task_by_pid" = "xyes"; then + AC_DEFINE([EXPORTED_FIND_TASK_BY_PID], 1, [define if find_task_by_pid() is usable]) + fi]) + +AC_DEFUN([LINUX_EXPORTS_PROC_ROOT_FS], [ + AC_MSG_CHECKING([if proc_root_fs is defined and exported]) + AC_CACHE_VAL([ac_cv_linux_exports_proc_root_fs], [ + AC_TRY_KBUILD( +[#include ], +[struct proc_dir_entry *p = proc_root_fs;], + ac_cv_linux_exports_proc_root_fs=yes, + ac_cv_linux_exports_proc_root_fs=no)]) + AC_MSG_RESULT($ac_cv_linux_exports_proc_root_fs) + if test "x$ac_cv_linux_exports_proc_root_fs" = "xyes"; then + AC_DEFINE([EXPORTED_PROC_ROOT_FS], 1, [define if proc_root_fs is exported]) + fi]) +