diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-07-03 10:25:08 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-07-03 10:25:08 -0400 |
commit | 0a1340c185734a57fbf4775927966ad4a1347b02 (patch) | |
tree | d9ed8f0dd809a7c542a3356601125ea5b5aaa804 /mm/readahead.c | |
parent | af18ddb8864b096e3ed4732e2d4b21c956dcfe3a (diff) | |
parent | 29454dde27d8e340bb1987bad9aa504af7081eba (diff) |
Merge rsync://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
include/linux/kernel.h
Diffstat (limited to 'mm/readahead.c')
-rw-r--r-- | mm/readahead.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/mm/readahead.c b/mm/readahead.c index ba7db816f4c8..1ba736ac0367 100644 --- a/mm/readahead.c +++ b/mm/readahead.c | |||
@@ -119,8 +119,7 @@ static inline unsigned long get_next_ra_size(struct file_ra_state *ra) | |||
119 | #define list_to_page(head) (list_entry((head)->prev, struct page, lru)) | 119 | #define list_to_page(head) (list_entry((head)->prev, struct page, lru)) |
120 | 120 | ||
121 | /** | 121 | /** |
122 | * read_cache_pages - populate an address space with some pages, and | 122 | * read_cache_pages - populate an address space with some pages & start reads against them |
123 | * start reads against them. | ||
124 | * @mapping: the address_space | 123 | * @mapping: the address_space |
125 | * @pages: The address of a list_head which contains the target pages. These | 124 | * @pages: The address of a list_head which contains the target pages. These |
126 | * pages have their ->index populated and are otherwise uninitialised. | 125 | * pages have their ->index populated and are otherwise uninitialised. |
@@ -183,14 +182,11 @@ static int read_pages(struct address_space *mapping, struct file *filp, | |||
183 | list_del(&page->lru); | 182 | list_del(&page->lru); |
184 | if (!add_to_page_cache(page, mapping, | 183 | if (!add_to_page_cache(page, mapping, |
185 | page->index, GFP_KERNEL)) { | 184 | page->index, GFP_KERNEL)) { |
186 | ret = mapping->a_ops->readpage(filp, page); | 185 | mapping->a_ops->readpage(filp, page); |
187 | if (ret != AOP_TRUNCATED_PAGE) { | 186 | if (!pagevec_add(&lru_pvec, page)) |
188 | if (!pagevec_add(&lru_pvec, page)) | 187 | __pagevec_lru_add(&lru_pvec); |
189 | __pagevec_lru_add(&lru_pvec); | 188 | } else |
190 | continue; | 189 | page_cache_release(page); |
191 | } /* else fall through to release */ | ||
192 | } | ||
193 | page_cache_release(page); | ||
194 | } | 190 | } |
195 | pagevec_lru_add(&lru_pvec); | 191 | pagevec_lru_add(&lru_pvec); |
196 | ret = 0; | 192 | ret = 0; |
@@ -395,8 +391,8 @@ int do_page_cache_readahead(struct address_space *mapping, struct file *filp, | |||
395 | * Read 'nr_to_read' pages starting at page 'offset'. If the flag 'block' | 391 | * Read 'nr_to_read' pages starting at page 'offset'. If the flag 'block' |
396 | * is set wait till the read completes. Otherwise attempt to read without | 392 | * is set wait till the read completes. Otherwise attempt to read without |
397 | * blocking. | 393 | * blocking. |
398 | * Returns 1 meaning 'success' if read is succesfull without switching off | 394 | * Returns 1 meaning 'success' if read is successful without switching off |
399 | * readhaead mode. Otherwise return failure. | 395 | * readahead mode. Otherwise return failure. |
400 | */ | 396 | */ |
401 | static int | 397 | static int |
402 | blockable_page_cache_readahead(struct address_space *mapping, struct file *filp, | 398 | blockable_page_cache_readahead(struct address_space *mapping, struct file *filp, |