aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/direct.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r--fs/nfs/direct.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 594f4e7e0b9a..0bd7a55a5f07 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -266,13 +266,8 @@ static void nfs_direct_read_completion(struct nfs_pgio_header *hdr)
266 struct nfs_page *req = nfs_list_entry(hdr->pages.next); 266 struct nfs_page *req = nfs_list_entry(hdr->pages.next);
267 struct page *page = req->wb_page; 267 struct page *page = req->wb_page;
268 268
269 if (!PageCompound(page)) { 269 if (!PageCompound(page) && bytes < hdr->good_bytes)
270 if (test_bit(NFS_IOHDR_ERROR, &hdr->flags)) { 270 set_page_dirty(page);
271 if (bytes < hdr->good_bytes)
272 set_page_dirty(page);
273 } else
274 set_page_dirty(page);
275 }
276 bytes += req->wb_bytes; 271 bytes += req->wb_bytes;
277 nfs_list_remove_request(req); 272 nfs_list_remove_request(req);
278 nfs_direct_readpage_release(req); 273 nfs_direct_readpage_release(req);