aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r--mm/page-writeback.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index b901fe52b153..db30ce0b7d80 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2371,9 +2371,8 @@ int do_writepages(struct address_space *mapping, struct writeback_control *wbc)
2371 * 2371 *
2372 * The page must be locked by the caller and will be unlocked upon return. 2372 * The page must be locked by the caller and will be unlocked upon return.
2373 * 2373 *
2374 * write_one_page() returns a negative error code if I/O failed. Note that 2374 * Note that the mapping's AS_EIO/AS_ENOSPC flags will be cleared when this
2375 * the address_space is not marked for error. The caller must do this if 2375 * function returns.
2376 * needed.
2377 */ 2376 */
2378int write_one_page(struct page *page) 2377int write_one_page(struct page *page)
2379{ 2378{
@@ -2391,15 +2390,15 @@ int write_one_page(struct page *page)
2391 if (clear_page_dirty_for_io(page)) { 2390 if (clear_page_dirty_for_io(page)) {
2392 get_page(page); 2391 get_page(page);
2393 ret = mapping->a_ops->writepage(page, &wbc); 2392 ret = mapping->a_ops->writepage(page, &wbc);
2394 if (ret == 0) { 2393 if (ret == 0)
2395 wait_on_page_writeback(page); 2394 wait_on_page_writeback(page);
2396 if (PageError(page))
2397 ret = -EIO;
2398 }
2399 put_page(page); 2395 put_page(page);
2400 } else { 2396 } else {
2401 unlock_page(page); 2397 unlock_page(page);
2402 } 2398 }
2399
2400 if (!ret)
2401 ret = filemap_check_errors(mapping);
2403 return ret; 2402 return ret;
2404} 2403}
2405EXPORT_SYMBOL(write_one_page); 2404EXPORT_SYMBOL(write_one_page);