]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
* Apply upstream patches for Linux 2.6.22 support. (Closes: #428401)
authorRuss Allbery <rra@debian.org>
Tue, 12 Jun 2007 18:41:41 +0000 (18:41 +0000)
committerRuss Allbery <rra@debian.org>
Tue, 12 Jun 2007 18:41:41 +0000 (18:41 +0000)
* Apply upstream patch to fix the AFS /proc structure under Linux
  2.6.22.1 and later.

acinclude.m4
debian/changelog
src/afs/LINUX/osi_sleep.c
src/afs/LINUX/osi_sysctl.c
src/afs/LINUX/osi_vfsops.c
src/afs/LINUX/osi_vnodeops.c
src/cf/linux-test4.m4
src/rx/LINUX/rx_kmutex.c
src/rx/LINUX/rx_knet.c

index 8209ee634965b17fa94daa86a50d20ab6254f383..d7ee559da182d99b11cae1a0b727a01fab1a7d87 100644 (file)
@@ -611,6 +611,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 LINUX_FS_STRUCT_FOP_HAS_FLOCK
                 LINUX_KERNEL_LINUX_SYSCALL_H
                 LINUX_KERNEL_LINUX_SEQ_FILE_H
+                LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
                 LINUX_KERNEL_SELINUX
                 LINUX_KERNEL_SOCK_CREATE
                 LINUX_KERNEL_PAGE_FOLLOW_LINK
@@ -626,6 +627,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
+                LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
                 LINUX_EXPORTS_TASKLIST_LOCK
                 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
                 LINUX_STATFS_TAKES_DENTRY
@@ -767,6 +769,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then 
                  AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
                 fi
+                if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
+                 AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
+                fi
                 if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
                  AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
                 fi
@@ -812,6 +817,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then 
                  AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
                 fi
+                if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then 
+                 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
+                fi
                 if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
                  AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
                 fi
index c4fa93bab6648b679384c183304652bc8409ddd3..adb15fa50b3e7b599a63a86710f2c45fdaead71e 100644 (file)
@@ -2,11 +2,14 @@ openafs (1.4.4.dfsg1-4) UNRELEASED; urgency=low
 
   * Apply upstream patch from Jeffrey Hutzelman to fix kernel module
     builds on ppc64.  (Closes: #427555)
+  * Apply upstream patches for Linux 2.6.22 support.  (Closes: #428401)
+  * Apply upstream patch to fix the AFS /proc structure under Linux
+    2.6.22.1 and later.
   * Go back to using krb5-config.  The dependency problem has now been
     fixed on all platforms in the krb5 package and this is the preferred
     upstream method.
 
- -- Russ Allbery <rra@debian.org>  Mon, 04 Jun 2007 20:59:15 -0700
+ -- Russ Allbery <rra@debian.org>  Tue, 12 Jun 2007 11:43:54 -0700
 
 openafs (1.4.4.dfsg1-3) unstable; urgency=low
 
index b9594c0f729a7974a70d5011c7f9cc8216b0b0e5..5a862f7fd240fc8f2d5e94bba683bbc05eaa5bc2 100644 (file)
@@ -205,7 +205,11 @@ afs_osi_SleepSig(void *event)
 #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
            !current->todo
 #else
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+#else
+            test_ti_thread_flag(task_thread_info(current), TIF_FREEZE)
+#endif
 #endif
 #endif
            )
@@ -304,7 +308,11 @@ osi_TimedSleep(char *event, afs_int32 ams, int aintok)
 #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
            !current->todo
 #else
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+#else
+            test_ti_thread_flag(task_thread_info(current), TIF_FREEZE)
+#endif
 #endif
 #endif
            )
index 580a10e0b311b10cd89ab68240699c0971fced9d..56c0bcb8c5c9e1ba8bc6eff05a7a97671704b350 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * osi_sysctl.c: Linux sysctl interface to OpenAFS
  *
- * $Id: osi_sysctl.c,v 1.7.2.4 2007/02/22 21:49:01 shadow Exp $
+ * $Id: osi_sysctl.c,v 1.7.2.5 2007/06/12 18:28:49 shadow Exp $
  *
  * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates)
  */
@@ -27,35 +27,64 @@ extern afs_int32 hm_retry_int;
 static struct ctl_table_header *afs_sysctl = NULL;
 
 static ctl_table afs_sysctl_table[] = {
-    {1, "hm_retry_RO",
-     &hm_retry_RO, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
-    {2, "hm_retry_RW",
-     &hm_retry_RW, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
-    {3, "hm_retry_int",
-     &hm_retry_int, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
-    {4, "GCPAGs",
-     &afs_gcpags, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
-    {5, "rx_deadtime",
-     &afs_rx_deadtime, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
-    {6, "bkVolPref",
-     &afs_bkvolpref, sizeof(afs_int32), 0644, NULL,
-     &proc_dointvec}
-    ,
+    {
+       .ctl_name       = 1, 
+       .procname       = "hm_retry_RO",
+       .data           = &hm_retry_RO, 
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
+    {
+        .ctl_name      = 2, 
+        .procname      = "hm_retry_RW",
+        .data          = &hm_retry_RW,
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
+    {
+       .ctl_name       = 3, 
+       .procname       = "hm_retry_int",
+       .data           = &hm_retry_int, 
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
+    {
+       .ctl_name       = 4, 
+       .procname       = "GCPAGs",
+       .data           = &afs_gcpags, 
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
+    {
+       .ctl_name       = 5, 
+       .procname       = "rx_deadtime",
+       .data           = &afs_rx_deadtime, 
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
+    {
+       .ctl_name       = 6, 
+       .procname       = "bkVolPref",
+       .data           = &afs_bkvolpref, 
+       .maxlen         = sizeof(afs_int32), 
+       .mode           = 0644,
+       .proc_handler   = &proc_dointvec
+    },
     {0}
 };
 
 static ctl_table fs_sysctl_table[] = {
-    {1, "afs", NULL, 0, 0555, afs_sysctl_table},
+    {
+       .ctl_name       = 1, 
+       .procname       = "afs", 
+       .mode           = 0555, 
+       .child          = afs_sysctl_table
+    },
     {0}
 };
 
index b9ad8d2f63951fcf7e783c4a32353259696db54a..1e01cd7a3f4a2bf36b008bc506dc489a14fdab57 100644 (file)
@@ -292,8 +292,10 @@ init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
 {
     struct vcache *vcp = (struct vcache *) foo;
 
+#if defined(SLAB_CTOR_VERIFY)
     if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
        SLAB_CTOR_CONSTRUCTOR)
+#endif
        inode_init_once(AFSTOV(vcp));
 }
 
index 7c761b61746110a7f39ef0428a200701c7f45777..108e63db51647c4732a447e1646e6d59d6d48bf3 100644 (file)
@@ -473,11 +473,11 @@ afs_linux_lock(struct file *fp, int cmd, struct file_lock *flp)
 #ifdef AFS_LINUX24_ENV
     if ((code == 0 || flp->fl_type == F_UNLCK) && 
         (cmd == F_SETLK || cmd == F_SETLKW)) {
-#ifdef AFS_LINUX26_ENV
+#ifdef POSIX_LOCK_FILE_WAIT_ARG
+       code = posix_lock_file(fp, flp, 0);
+#else
        flp->fl_flags &=~ FL_SLEEP;
        code = posix_lock_file(fp, flp);
-#else
-       code = posix_lock_file(fp, flp, 0);
 #endif 
        if (code && flp->fl_type != F_UNLCK) {
            struct AFS_FLOCK flock2;
index 653464fb6e145fdd60e49a3fe926677623e27873..cc6908c844eb98d33d15cdbc31450d026a6824e0 100644 (file)
@@ -444,6 +444,18 @@ printk("%d\n", _tsk.exit_state);],
   AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_exit_state)])
 
 
+AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO], [
+  AC_MSG_CHECKING([for thread_info in struct task_struct])
+  AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_thread_info], [
+    AC_TRY_KBUILD(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printk("%d\n", _tsk.thread_info);],
+      ac_cv_linux_sched_struct_task_struct_has_thread_info=yes,
+      ac_cv_linux_sched_struct_task_struct_has_thread_info=no)])
+  AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_thread_info)])
+
+
 AC_DEFUN([LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE], [
   AC_MSG_CHECKING([for alloc_inode in struct super_operations])
   AC_CACHE_VAL([ac_cv_linux_fs_struct_super_has_alloc_inode], [
@@ -456,6 +468,17 @@ printk("%p\n", _super.alloc_inode);],
   AC_MSG_RESULT($ac_cv_linux_fs_struct_super_has_alloc_inode)])
 
 
+AC_DEFUN([LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG], [
+  AC_MSG_CHECKING([for 3rd argument in posix_lock_file found in new kernels])
+  AC_CACHE_VAL([ac_cv_linux_kernel_posix_lock_file_wait_arg], [
+    AC_TRY_KBUILD(
+[#include <linux/fs.h>],
+[posix_lock_file(0,0,0);],
+      ac_cv_linux_kernel_posix_lock_file_wait_arg=yes,
+      ac_cv_linux_kernel_posix_lock_file_wait_arg=no)])
+  AC_MSG_RESULT($ac_cv_linux_kernel_posix_lock_file_wait_arg)])
+
+
 AC_DEFUN([LINUX_KERNEL_SOCK_CREATE], [
   AC_MSG_CHECKING([for 5th argument in sock_create found in some SELinux kernels])
   AC_CACHE_VAL([ac_cv_linux_kernel_sock_create_v], [
index 9dc88fb17d4aec83245b301be833e59e5a86cc88..1732f9089e1e724454a78e9700a259d11ce66756 100644 (file)
@@ -123,7 +123,11 @@ afs_cv_wait(afs_kcondvar_t * cv, afs_kmutex_t * l, int sigok)
 #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
            !current->todo
 #else
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
            test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+#else
+           test_ti_thread_flag(task_thread_info(current), TIF_FREEZE)
+#endif
 #endif
 #endif
            )
index 8fbb280e3a14c63c864d13c734c3dc72a657d573..967159edbfeefa0685b422520915c371454618f5 100644 (file)
@@ -173,7 +173,11 @@ osi_NetReceive(osi_socket so, struct sockaddr_in *from, struct iovec *iov,
 #if defined(STRUCT_TASK_STRUCT_HAS_TODO)
            !current->todo
 #else
+#if defined(STRUCT_TASK_STRUCT_HAS_THREAD_INFO)
             test_ti_thread_flag(current->thread_info, TIF_FREEZE)
+#else
+            test_ti_thread_flag(task_thread_info(current), TIF_FREEZE)
+#endif
 #endif
 #endif
            )