Taken from
	http://dl.openafs.org/dl/1.4.4/fedora-7/SRPMS/openafs-1.4.4-fc7.3.src.rpm
		-> openafs-STABLE14-linux-2-6-22-updates-20070611.patch

diff -urN openafs-1.4.4.old/acinclude.m4 openafs-1.4.4/acinclude.m4
--- openafs-1.4.4.old/acinclude.m4	2007-02-22 22:48:58.000000000 +0100
+++ openafs-1.4.4/acinclude.m4	2007-07-24 14:41:10.000000000 +0200
@@ -626,6 +626,7 @@
 		 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
@@ -812,6 +813,9 @@
 		 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
diff -urN openafs-1.4.4.old/src/afs/LINUX/osi_sleep.c openafs-1.4.4/src/afs/LINUX/osi_sleep.c
--- openafs-1.4.4.old/src/afs/LINUX/osi_sleep.c	2007-01-04 22:26:34.000000000 +0100
+++ openafs-1.4.4/src/afs/LINUX/osi_sleep.c	2007-07-24 14:41:10.000000000 +0200
@@ -205,7 +205,11 @@
 #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
 	    )
@@ -303,7 +307,11 @@
 #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
 	    )
diff -urN openafs-1.4.4.old/src/afs/LINUX/osi_vfsops.c openafs-1.4.4/src/afs/LINUX/osi_vfsops.c
--- openafs-1.4.4.old/src/afs/LINUX/osi_vfsops.c	2007-02-09 02:25:48.000000000 +0100
+++ openafs-1.4.4/src/afs/LINUX/osi_vfsops.c	2007-07-24 14:41:10.000000000 +0200
@@ -292,8 +292,10 @@
 {
     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));
 }
 
diff -urN openafs-1.4.4.old/src/cf/linux-test4.m4 openafs-1.4.4/src/cf/linux-test4.m4
--- openafs-1.4.4.old/src/cf/linux-test4.m4	2007-02-26 18:53:33.000000000 +0100
+++ openafs-1.4.4/src/cf/linux-test4.m4	2007-07-24 14:41:10.000000000 +0200
@@ -444,6 +444,18 @@
   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], [
diff -urN openafs-1.4.4.old/src/rx/LINUX/rx_kmutex.c openafs-1.4.4/src/rx/LINUX/rx_kmutex.c
--- openafs-1.4.4.old/src/rx/LINUX/rx_kmutex.c	2006-12-28 22:32:09.000000000 +0100
+++ openafs-1.4.4/src/rx/LINUX/rx_kmutex.c	2007-07-24 14:41:10.000000000 +0200
@@ -122,7 +122,11 @@
 #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
 	    )
diff -urN openafs-1.4.4.old/src/rx/LINUX/rx_knet.c openafs-1.4.4/src/rx/LINUX/rx_knet.c
--- openafs-1.4.4.old/src/rx/LINUX/rx_knet.c	2007-02-26 18:59:21.000000000 +0100
+++ openafs-1.4.4/src/rx/LINUX/rx_knet.c	2007-07-24 14:41:10.000000000 +0200
@@ -173,7 +173,11 @@
 #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
 	    )
