]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - mm/filemap.c
V4L/DVB (8379): saa7127: Make device detection optional
[linux-2.6-omap-h63xx.git] / mm / filemap.c
index 2dead9adf8b76806e66ac1b0169510773be58e14..65d9d9e2b755e7dd7e662d4dd5cc45b19514a7ab 100644 (file)
@@ -236,11 +236,12 @@ int filemap_fdatawrite(struct address_space *mapping)
 }
 EXPORT_SYMBOL(filemap_fdatawrite);
 
-static int filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
+int filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
                                loff_t end)
 {
        return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL);
 }
+EXPORT_SYMBOL(filemap_fdatawrite_range);
 
 /**
  * filemap_flush - mostly a non-blocking flush
@@ -1461,6 +1462,11 @@ page_not_uptodate:
         */
        ClearPageError(page);
        error = mapping->a_ops->readpage(file, page);
+       if (!error) {
+               wait_on_page_locked(page);
+               if (!PageUptodate(page))
+                       error = -EIO;
+       }
        page_cache_release(page);
 
        if (!error || error == AOP_TRUNCATED_PAGE)