Linux: Use freezer compatibility macros in RX
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Sat, 10 Jul 2010 19:17:56 +0000 (20:17 +0100)
committerDerrick Brashear <shadow@dementia.org>
Mon, 12 Jul 2010 02:43:47 +0000 (19:43 -0700)
Commit eef18466d920985c37ed8d22a6557b609c6225a6 introduced some
compatibility macros for the refridgerator functionality. Use these
in the Linux kernel RX code, rather than rolling our own.

Change-Id: I4279e0b3ee92337cb992ff46895712630f681b7b
Reviewed-on: http://gerrit.openafs.org/2383
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/rx/LINUX/rx_kmutex.c
src/rx/LINUX/rx_knet.c

index 3ddd1bf..be36c74 100644 (file)
@@ -21,9 +21,7 @@
 #include "rx_kmutex.h"
 #include "rx/rx_kernel.h"
 
-#ifdef HAVE_LINUX_FREEZER_H
-# include <linux/freezer.h>
-#endif
+#include "osi_compat.h"
 
 void
 afs_mutex_init(afs_kmutex_t * l)
@@ -115,29 +113,8 @@ afs_cv_wait(afs_kcondvar_t * cv, afs_kmutex_t * l, int sigok)
 
     while(seq == cv->seq) {
        schedule();
-#ifdef CONFIG_PM
-       if (
-#ifdef PF_FREEZE
-           current->flags & PF_FREEZE
-#else
-#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
-           )
-#ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
-           refrigerator(PF_FREEZE);
-#else
-           refrigerator();
-#endif
-           set_current_state(TASK_INTERRUPTIBLE);
-#endif
+       afs_try_to_freeze();
+       set_current_state(TASK_INTERRUPTIBLE);
     }
 
     remove_wait_queue(&cv->waitq, &wait);
index d93d2d5..9165cfd 100644 (file)
@@ -240,29 +240,7 @@ osi_NetReceive(osi_socket so, struct sockaddr_in *from, struct iovec *iov,
     code = kernel_recvmsg(sop, &msg, (struct kvec *)tmpvec, iovcnt,
                          *lengthp, 0);
     if (code < 0) {
-#ifdef CONFIG_PM
-       if (
-# ifdef PF_FREEZE
-           current->flags & PF_FREEZE
-# else
-#  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
-           )
-# ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
-           refrigerator(PF_FREEZE);
-# else
-           refrigerator();
-# endif
-           set_current_state(TASK_INTERRUPTIBLE);
-#endif
+       afs_try_to_freeze();
 
        /* Clear the error before using the socket again.
         * Oh joy, Linux has hidden header files as well. It appears we can