Merge branch 'fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq...
[cascardo/linux.git] / mm / backing-dev.c
index 0c6317b..ed173b8 100644 (file)
@@ -957,9 +957,8 @@ EXPORT_SYMBOL(congestion_wait);
  * jiffies for either a BDI to exit congestion of the given @sync queue
  * or a write to complete.
  *
- * In the absence of zone congestion, a short sleep or a cond_resched is
- * performed to yield the processor and to allow other subsystems to make
- * a forward progress.
+ * In the absence of zone congestion, cond_resched() is called to yield
+ * the processor if necessary but otherwise does not sleep.
  *
  * The return value is 0 if the sleep is for the full timeout. Otherwise,
  * it is the number of jiffies that were still remaining when the function
@@ -979,20 +978,7 @@ long wait_iff_congested(struct zone *zone, int sync, long timeout)
         */
        if (atomic_read(&nr_wb_congested[sync]) == 0 ||
            !test_bit(ZONE_CONGESTED, &zone->flags)) {
-
-               /*
-                * Memory allocation/reclaim might be called from a WQ
-                * context and the current implementation of the WQ
-                * concurrency control doesn't recognize that a particular
-                * WQ is congested if the worker thread is looping without
-                * ever sleeping. Therefore we have to do a short sleep
-                * here rather than calling cond_resched().
-                */
-               if (current->flags & PF_WQ_WORKER)
-                       schedule_timeout_uninterruptible(1);
-               else
-                       cond_resched();
-
+               cond_resched();
                /* In case we scheduled, work out time remaining */
                ret = timeout - (jiffies - start);
                if (ret < 0)