diff --git a/[refs] b/[refs] index 0f10d430becf..814522317c91 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 499d05ecf990a7a7bbf9e0a273f9969f8ec69efc +refs/heads/master: 1df647197c5b8aacaeb58592cba9a1df322c9000 diff --git a/trunk/mm/page-writeback.c b/trunk/mm/page-writeback.c index 79c34419fadd..e7cb5ff6e53d 100644 --- a/trunk/mm/page-writeback.c +++ b/trunk/mm/page-writeback.c @@ -1136,14 +1136,11 @@ static void balance_dirty_pages(struct address_space *mapping, __set_current_state(TASK_KILLABLE); io_schedule_timeout(pause); - dirty_thresh = hard_dirty_limit(dirty_thresh); /* - * max-pause area. If dirty exceeded but still within this - * area, no need to sleep for more than 200ms: (a) 8 pages per - * 200ms is typically more than enough to curb heavy dirtiers; - * (b) the pause time limit makes the dirtiers more responsive. + * This is typically equal to (nr_dirty < dirty_thresh) and can + * also keep "1000+ dd on a slow USB stick" under control. */ - if (nr_dirty < dirty_thresh) + if (task_ratelimit) break; if (fatal_signal_pending(current))