X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fpage-writeback.c;h=2cb01f6ec5d019e7e431d9f18cdba6f3bde573e4;hb=efe8dc556cd0f22e04c453188ffbc408b492eb82;hp=b5d8a1f820a02f3bf841a6b655643f61adbeedc2;hpb=fe3c560b8a22cb28e54fe8950abef38e88d75831;p=mv-sheeva.git diff --git a/mm/page-writeback.c b/mm/page-writeback.c index b5d8a1f820a..2cb01f6ec5d 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -410,9 +410,12 @@ void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty) { unsigned long background; unsigned long dirty; - unsigned long available_memory = determine_dirtyable_memory(); + unsigned long uninitialized_var(available_memory); struct task_struct *tsk; + if (!vm_dirty_bytes || !dirty_background_bytes) + available_memory = determine_dirtyable_memory(); + if (vm_dirty_bytes) dirty = DIV_ROUND_UP(vm_dirty_bytes, PAGE_SIZE); else @@ -1103,7 +1106,7 @@ EXPORT_SYMBOL(write_one_page); int __set_page_dirty_no_writeback(struct page *page) { if (!PageDirty(page)) - SetPageDirty(page); + return !TestSetPageDirty(page); return 0; }