diff options
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r-- | fs/nfs/direct.c | 9 |
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); |