git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mm: use pagevec_lookup_range_tag() in __filemap_fdatawait_range()
[sfrench/cifs-2.6.git]
/
mm
/
filemap.c
diff --git
a/mm/filemap.c
b/mm/filemap.c
index cf74d0dacc6a93b1b7ae7dcdbd8e6070821d0c62..229481d258bc89f344a5dd7899f456353a13919d 100644
(file)
--- a/
mm/filemap.c
+++ b/
mm/filemap.c
@@
-420,19
+420,17
@@
static void __filemap_fdatawait_range(struct address_space *mapping,
return;
pagevec_init(&pvec, 0);
return;
pagevec_init(&pvec, 0);
- while ((index <= end) &&
- (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index,
- PAGECACHE_TAG_WRITEBACK,
- min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1)) != 0) {
+ while (index <= end) {
unsigned i;
unsigned i;
+ nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index,
+ end, PAGECACHE_TAG_WRITEBACK, PAGEVEC_SIZE);
+ if (!nr_pages)
+ break;
+
for (i = 0; i < nr_pages; i++) {
struct page *page = pvec.pages[i];
for (i = 0; i < nr_pages; i++) {
struct page *page = pvec.pages[i];
- /* until radix tree lookup accepts end_index */
- if (page->index > end)
- continue;
-
wait_on_page_writeback(page);
ClearPageError(page);
}
wait_on_page_writeback(page);
ClearPageError(page);
}