]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/buffer.c
page_writeback: clean up mess around cancel_dirty_page()
[karo-tx-linux.git] / fs / buffer.c
index 20805db2c98774a8cbe3242d37c63f370149f1a9..c7a5602d01eed200912d3a90ca4ac6780209cb6f 100644 (file)
@@ -3243,8 +3243,8 @@ int try_to_free_buffers(struct page *page)
         * to synchronise against __set_page_dirty_buffers and prevent the
         * dirty bit from being lost.
         */
-       if (ret)
-               cancel_dirty_page(page, PAGE_CACHE_SIZE);
+       if (ret && TestClearPageDirty(page))
+               account_page_cleaned(page, mapping);
        spin_unlock(&mapping->private_lock);
 out:
        if (buffers_to_free) {