diff options
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r-- | mm/page-writeback.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index ecf27839c203..c0d4ce144dec 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -807,9 +807,11 @@ int fastcall set_page_dirty(struct page *page) | |||
807 | 807 | ||
808 | if (likely(mapping)) { | 808 | if (likely(mapping)) { |
809 | int (*spd)(struct page *) = mapping->a_ops->set_page_dirty; | 809 | int (*spd)(struct page *) = mapping->a_ops->set_page_dirty; |
810 | if (spd) | 810 | #ifdef CONFIG_BLOCK |
811 | return (*spd)(page); | 811 | if (!spd) |
812 | return __set_page_dirty_buffers(page); | 812 | spd = __set_page_dirty_buffers; |
813 | #endif | ||
814 | return (*spd)(page); | ||
813 | } | 815 | } |
814 | if (!PageDirty(page)) { | 816 | if (!PageDirty(page)) { |
815 | if (!TestSetPageDirty(page)) | 817 | if (!TestSetPageDirty(page)) |