Not sure what to do here just yet. Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- mm/page-writeback.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/page-writeback.c b/mm/page-writeback.c index de0dbf12e2c1..3ac8399dc984 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2388,6 +2388,12 @@ int write_one_page(struct page *page) ret = mapping->a_ops->writepage(page, &wbc); if (ret == 0) { wait_on_page_writeback(page); + /* + * FIXME: is this racy? What guarantees that PG_error + * will still be set once we get around to checking it? + * What if writeback fails, but then a read is issued + * before we check this, and that calls ClearPageError? + */ if (PageError(page)) ret = -EIO; } -- 2.9.3