try to make refrigerator work again
while(seq == cv->seq) {
schedule();
- /* should we refrigerate? */
+#ifdef AFS_LINUX26_ENV
+#ifdef CONFIG_PM
+ if (
+#ifdef PF_FREEZE
+ current->flags & PF_FREEZE
+#else
+ !current->todo
+#endif
+ )
+#ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
+ refrigerator(PF_FREEZE);
+#else
+ refrigerator();
+#endif
+ set_current_state(TASK_INTERRUPTIBLE);
+#endif
+#endif
}
remove_wait_queue(&cv->waitq, &wait);
TO_KERNEL_SPACE();
if (code < 0) {
+#ifdef AFS_LINUX26_ENV
+#ifdef CONFIG_PM
+ if (
+#ifdef PF_FREEZE
+ current->flags & PF_FREEZE
+#else
+ !current->todo
+#endif
+ )
+#ifdef LINUX_REFRIGERATOR_TAKES_PF_FREEZE
+ refrigerator(PF_FREEZE);
+#else
+ refrigerator();
+#endif
+ set_current_state(TASK_INTERRUPTIBLE);
+#endif
+#endif
+
/* Clear the error before using the socket again.
* Oh joy, Linux has hidden header files as well. It appears we can
* simply call again and have it clear itself via sock_error().