]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/page-writeback.c
MIPS: Fix always CONFIG_LOONGSON_UART_BASE=y
[mv-sheeva.git] / mm / page-writeback.c
index b5d8a1f820a02f3bf841a6b655643f61adbeedc2..2cb01f6ec5d019e7e431d9f18cdba6f3bde573e4 100644 (file)
@@ -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;
 }