Fix a bad bug in read_cache_page_async() introduced in commit:

        6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2

This adds:

        mark_page_accessed(page)

into the error handling path in read_cache_page_async().  In such a case,
'page' holds the error code.

Signed-off-by: David Howells <[EMAIL PROTECTED]>
---

 mm/filemap.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/mm/filemap.c b/mm/filemap.c
index 9e56fd1..10d4fcf 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1784,7 +1784,7 @@ struct page *read_cache_page_async(struct address_space 
*mapping,
 retry:
        page = __read_cache_page(mapping, index, filler, data);
        if (IS_ERR(page))
-               goto out;
+               goto error;
        mark_page_accessed(page);
        if (PageUptodate(page))
                goto out;
@@ -1803,9 +1803,11 @@ retry:
        if (err < 0) {
                page_cache_release(page);
                page = ERR_PTR(err);
+               goto error;
        }
- out:
+out:
        mark_page_accessed(page);
+error:
        return page;
 }
 EXPORT_SYMBOL(read_cache_page_async);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to