[PATCH v2 7/9] mm: ensure that we set mapping error if writeout() fails

2017-03-08 Thread Jeff Layton
If writepage fails during a page migration, then we need to ensure that
fsync will see it by flagging the mapping.

Signed-off-by: Jeff Layton 
---
 mm/migrate.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/mm/migrate.c b/mm/migrate.c
index 9a0897a14d37..a9c0b46865b7 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -789,7 +789,11 @@ static int writeout(struct address_space *mapping, struct 
page *page)
/* unlocked. Relock */
lock_page(page);
 
-   return (rc < 0) ? -EIO : -EAGAIN;
+   if (rc < 0) {
+   mapping_set_error(mapping, rc);
+   return -EIO;
+   }
+   return -EAGAIN;
 }
 
 /*
-- 
2.9.3



[PATCH v2 7/9] mm: ensure that we set mapping error if writeout() fails

2017-03-08 Thread Jeff Layton
If writepage fails during a page migration, then we need to ensure that
fsync will see it by flagging the mapping.

Signed-off-by: Jeff Layton 
---
 mm/migrate.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/mm/migrate.c b/mm/migrate.c
index 9a0897a14d37..a9c0b46865b7 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -789,7 +789,11 @@ static int writeout(struct address_space *mapping, struct 
page *page)
/* unlocked. Relock */
lock_page(page);
 
-   return (rc < 0) ? -EIO : -EAGAIN;
+   if (rc < 0) {
+   mapping_set_error(mapping, rc);
+   return -EIO;
+   }
+   return -EAGAIN;
 }
 
 /*
-- 
2.9.3