aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/read.c7
-rw-r--r--include/linux/nfs_page.h1
2 files changed, 3 insertions, 5 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index 09829d96d207..fd58e909842b 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -276,7 +276,6 @@ nfs_async_read_error(struct list_head *head)
276 while (!list_empty(head)) { 276 while (!list_empty(head)) {
277 req = nfs_list_entry(head->next); 277 req = nfs_list_entry(head->next);
278 nfs_list_remove_request(req); 278 nfs_list_remove_request(req);
279 SetPageError(req->wb_page);
280 nfs_readpage_release(req); 279 nfs_readpage_release(req);
281 } 280 }
282} 281}
@@ -330,7 +329,6 @@ out_bad:
330 list_del(&data->list); 329 list_del(&data->list);
331 nfs_readdata_free(data); 330 nfs_readdata_free(data);
332 } 331 }
333 SetPageError(page);
334 nfs_readpage_release(req); 332 nfs_readpage_release(req);
335 return -ENOMEM; 333 return -ENOMEM;
336} 334}
@@ -460,10 +458,10 @@ static void nfs_readpage_release_partial(void *calldata)
460 int status = data->task.tk_status; 458 int status = data->task.tk_status;
461 459
462 if (status < 0) 460 if (status < 0)
463 SetPageError(page); 461 set_bit(PG_PARTIAL_READ_FAILED, &req->wb_flags);
464 462
465 if (atomic_dec_and_test(&req->wb_complete)) { 463 if (atomic_dec_and_test(&req->wb_complete)) {
466 if (!PageError(page)) 464 if (!test_bit(PG_PARTIAL_READ_FAILED, &req->wb_flags))
467 SetPageUptodate(page); 465 SetPageUptodate(page);
468 nfs_readpage_release(req); 466 nfs_readpage_release(req);
469 } 467 }
@@ -656,7 +654,6 @@ readpage_async_filler(void *data, struct page *page)
656 return 0; 654 return 0;
657out_error: 655out_error:
658 error = PTR_ERR(new); 656 error = PTR_ERR(new);
659 SetPageError(page);
660out_unlock: 657out_unlock:
661 unlock_page(page); 658 unlock_page(page);
662 return error; 659 return error;
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h
index e2791a27a901..ab465fe8c3d6 100644
--- a/include/linux/nfs_page.h
+++ b/include/linux/nfs_page.h
@@ -34,6 +34,7 @@ enum {
34 PG_NEED_COMMIT, 34 PG_NEED_COMMIT,
35 PG_NEED_RESCHED, 35 PG_NEED_RESCHED,
36 PG_PNFS_COMMIT, 36 PG_PNFS_COMMIT,
37 PG_PARTIAL_READ_FAILED,
37}; 38};
38 39
39struct nfs_inode; 40struct nfs_inode;