Index: linux-2.6.9-rc1-mm3-kdb/mm/page-writeback.c =================================================================== --- linux-2.6.9-rc1-mm3-kdb.orig/mm/page-writeback.c 2004-09-03 10:18:57.000000000 -0700 +++ linux-2.6.9-rc1-mm3-kdb/mm/page-writeback.c 2004-09-07 14:46:24.000000000 -0700 @@ -135,32 +135,19 @@ static void get_dirty_limits(struct writeback_state *wbs, long *pbackground, long *pdirty) { - int background_ratio; /* Percentages */ - int dirty_ratio; - int unmapped_ratio; + int unmapped; long background; long dirty; struct task_struct *tsk; get_writeback_state(wbs); - unmapped_ratio = 100 - (wbs->nr_mapped * 100) / total_pages; - dirty_ratio = vm_dirty_ratio; - if (dirty_ratio > unmapped_ratio / 2) - dirty_ratio = unmapped_ratio / 2; + unmapped = total_pages - wbs->nr_mapped; - if (dirty_ratio < 5) - dirty_ratio = 5; + background = (dirty_background_ratio * unmapped) / 100; + dirty = (vm_dirty_ratio * unmapped) / 100; - /* - * Keep the ratio between dirty_ratio and background_ratio roughly - * what the sysctls are after dirty_ratio has been scaled (above). - */ - background_ratio = dirty_background_ratio * dirty_ratio/vm_dirty_ratio; - - background = (background_ratio * total_pages) / 100; - dirty = (dirty_ratio * total_pages) / 100; tsk = current; if (tsk->flags & PF_LESS_THROTTLE || rt_task(tsk)) { background += background / 4;