CAPI: Fix locking around capiminor's output queue and drop workaround_lock
[safe/jmp/linux-2.6] / mm / backing-dev.c
index 11aee09..0e8ca03 100644 (file)
@@ -604,10 +604,14 @@ static void bdi_wb_shutdown(struct backing_dev_info *bdi)
 
        /*
         * Finally, kill the kernel threads. We don't need to be RCU
-        * safe anymore, since the bdi is gone from visibility.
+        * safe anymore, since the bdi is gone from visibility. Force
+        * unfreeze of the thread before calling kthread_stop(), otherwise
+        * it would never exet if it is currently stuck in the refrigerator.
         */
-       list_for_each_entry(wb, &bdi->wb_list, list)
+       list_for_each_entry(wb, &bdi->wb_list, list) {
+               thaw_process(wb->task);
                kthread_stop(wb->task);
+       }
 }
 
 /*