Linux: Use freezer compatibility macros in RX

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>
This commit is contained in:
Simon Wilkinson 2010-07-10 20:17:56 +01:00 committed by Derrick Brashear
parent af3292a06d
commit 2aa16fba58
2 changed files with 4 additions and 49 deletions

View 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
afs_try_to_freeze();
set_current_state(TASK_INTERRUPTIBLE);
#endif
}
remove_wait_queue(&cv->waitq, &wait);

View 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