2006-10-30 20:04:45

by OGAWA Hirofumi

[permalink] [raw]
Subject: [PATCH 2/4] cifs: ->readpages() fixes

This just ignore the remaining pages, and will fix a forgot put_pages_list().

Signed-off-by: OGAWA Hirofumi <[email protected]>
---

fs/cifs/file.c | 23 +----------------------
1 file changed, 1 insertion(+), 22 deletions(-)

diff -puN fs/cifs/file.c~readpages-fixes-cifs fs/cifs/file.c
--- linux-2.6/fs/cifs/file.c~readpages-fixes-cifs 2006-10-31 04:26:13.000000000 +0900
+++ linux-2.6-hirofumi/fs/cifs/file.c 2006-10-31 04:26:13.000000000 +0900
@@ -1806,13 +1806,6 @@ static int cifs_readpages(struct file *f
}
if ((rc < 0) || (smb_read_data == NULL)) {
cFYI(1, ("Read error in readpages: %d", rc));
- /* clean up remaing pages off list */
- while (!list_empty(page_list) && (i < num_pages)) {
- page = list_entry(page_list->prev, struct page,
- lru);
- list_del(&page->lru);
- page_cache_release(page);
- }
break;
} else if (bytes_read > 0) {
pSMBr = (struct smb_com_read_rsp *)smb_read_data;
@@ -1831,13 +1824,7 @@ static int cifs_readpages(struct file *f
this case is ok - if we are at server EOF
we will hit it on next read */

- /* while (!list_empty(page_list) && (i < num_pages)) {
- page = list_entry(page_list->prev,
- struct page, list);
- list_del(&page->list);
- page_cache_release(page);
- }
- break; */
+ /* break; */
}
} else {
cFYI(1, ("No bytes read (%d) at offset %lld . "
@@ -1845,14 +1832,6 @@ static int cifs_readpages(struct file *f
bytes_read, offset));
/* BB turn off caching and do new lookup on
file size at server? */
- while (!list_empty(page_list) && (i < num_pages)) {
- page = list_entry(page_list->prev, struct page,
- lru);
- list_del(&page->lru);
-
- /* BB removeme - replace with zero of page? */
- page_cache_release(page);
- }
break;
}
if (smb_read_data) {
_