]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/filemap.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
[karo-tx-linux.git] / mm / filemap.c
index 9e56fd158fa374c68bca45c63d40d806868f589b..edb1b0b5cc8dc64367eb9950378a9829a1e07241 100644 (file)
@@ -670,7 +670,8 @@ repeat:
        page = find_lock_page(mapping, index);
        if (!page) {
                if (!cached_page) {
-                       cached_page = alloc_page(gfp_mask);
+                       cached_page =
+                               __page_cache_alloc(gfp_mask);
                        if (!cached_page)
                                return NULL;
                }
@@ -1784,7 +1785,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;
+               return page;
        mark_page_accessed(page);
        if (PageUptodate(page))
                goto out;
@@ -1802,9 +1803,9 @@ retry:
        err = filler(data, page);
        if (err < 0) {
                page_cache_release(page);
-               page = ERR_PTR(err);
+               return ERR_PTR(err);
        }
- out:
+out:
        mark_page_accessed(page);
        return page;
 }