diff options
-rw-r--r-- | fs/fs-writeback.c | 2 | ||||
-rw-r--r-- | mm/page-writeback.c | 16 |
2 files changed, 6 insertions, 12 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index ab38fef1c9a1..97d2951bd4d1 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -582,7 +582,7 @@ static inline bool over_bground_thresh(void) | |||
582 | global_dirty_limits(&background_thresh, &dirty_thresh); | 582 | global_dirty_limits(&background_thresh, &dirty_thresh); |
583 | 583 | ||
584 | return (global_page_state(NR_FILE_DIRTY) + | 584 | return (global_page_state(NR_FILE_DIRTY) + |
585 | global_page_state(NR_UNSTABLE_NFS) >= background_thresh); | 585 | global_page_state(NR_UNSTABLE_NFS) > background_thresh); |
586 | } | 586 | } |
587 | 587 | ||
588 | /* | 588 | /* |
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 4dd91f7fd39f..b840afa89761 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -415,14 +415,8 @@ void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty) | |||
415 | 415 | ||
416 | if (vm_dirty_bytes) | 416 | if (vm_dirty_bytes) |
417 | dirty = DIV_ROUND_UP(vm_dirty_bytes, PAGE_SIZE); | 417 | dirty = DIV_ROUND_UP(vm_dirty_bytes, PAGE_SIZE); |
418 | else { | 418 | else |
419 | int dirty_ratio; | 419 | dirty = (vm_dirty_ratio * available_memory) / 100; |
420 | |||
421 | dirty_ratio = vm_dirty_ratio; | ||
422 | if (dirty_ratio < 5) | ||
423 | dirty_ratio = 5; | ||
424 | dirty = (dirty_ratio * available_memory) / 100; | ||
425 | } | ||
426 | 420 | ||
427 | if (dirty_background_bytes) | 421 | if (dirty_background_bytes) |
428 | background = DIV_ROUND_UP(dirty_background_bytes, PAGE_SIZE); | 422 | background = DIV_ROUND_UP(dirty_background_bytes, PAGE_SIZE); |
@@ -510,7 +504,7 @@ static void balance_dirty_pages(struct address_space *mapping, | |||
510 | * catch-up. This avoids (excessively) small writeouts | 504 | * catch-up. This avoids (excessively) small writeouts |
511 | * when the bdi limits are ramping up. | 505 | * when the bdi limits are ramping up. |
512 | */ | 506 | */ |
513 | if (nr_reclaimable + nr_writeback < | 507 | if (nr_reclaimable + nr_writeback <= |
514 | (background_thresh + dirty_thresh) / 2) | 508 | (background_thresh + dirty_thresh) / 2) |
515 | break; | 509 | break; |
516 | 510 | ||
@@ -542,8 +536,8 @@ static void balance_dirty_pages(struct address_space *mapping, | |||
542 | * the last resort safeguard. | 536 | * the last resort safeguard. |
543 | */ | 537 | */ |
544 | dirty_exceeded = | 538 | dirty_exceeded = |
545 | (bdi_nr_reclaimable + bdi_nr_writeback >= bdi_thresh) | 539 | (bdi_nr_reclaimable + bdi_nr_writeback > bdi_thresh) |
546 | || (nr_reclaimable + nr_writeback >= dirty_thresh); | 540 | || (nr_reclaimable + nr_writeback > dirty_thresh); |
547 | 541 | ||
548 | if (!dirty_exceeded) | 542 | if (!dirty_exceeded) |
549 | break; | 543 | break; |