diff --git a/[refs] b/[refs] index 485ec7097238..35c492eaeaa3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3b73a223661ed137c5d3d2635f954382e94f5a43 +refs/heads/master: 3ef0f720e47e895b613b0305eb0a483e3ec11f23 diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index 2dead9adf8b7..1e6a7d34874f 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -1461,6 +1461,11 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) */ 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)