diff options
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r-- | mm/page-writeback.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 0166ea15c9ee..5240e426c1f7 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -550,11 +550,17 @@ void __init page_writeback_init(void) | |||
550 | 550 | ||
551 | int do_writepages(struct address_space *mapping, struct writeback_control *wbc) | 551 | int do_writepages(struct address_space *mapping, struct writeback_control *wbc) |
552 | { | 552 | { |
553 | int ret; | ||
554 | |||
553 | if (wbc->nr_to_write <= 0) | 555 | if (wbc->nr_to_write <= 0) |
554 | return 0; | 556 | return 0; |
557 | wbc->for_writepages = 1; | ||
555 | if (mapping->a_ops->writepages) | 558 | if (mapping->a_ops->writepages) |
556 | return mapping->a_ops->writepages(mapping, wbc); | 559 | ret = mapping->a_ops->writepages(mapping, wbc); |
557 | return generic_writepages(mapping, wbc); | 560 | else |
561 | ret = generic_writepages(mapping, wbc); | ||
562 | wbc->for_writepages = 0; | ||
563 | return ret; | ||
558 | } | 564 | } |
559 | 565 | ||
560 | /** | 566 | /** |