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 <jlayton@xxxxxxxxxx> --- mm/migrate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/migrate.c b/mm/migrate.c index 738f1d5f8350..3a59830bdae2 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -792,7 +792,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