diff options
author | Jan Kara <jack@suse.cz> | 2017-09-06 16:21:18 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-09-06 17:27:26 -0700 |
commit | d72dc8a25afc71ce90ee92bdd77550e9beb85d4d (patch) | |
tree | da47df20fe7bd2672f8368a2545f82e17703820b /fs/fscache | |
parent | 26b433d0da062d6e19d75350c0171d3cf8ff560d (diff) | |
download | linux-d72dc8a25afc71ce90ee92bdd77550e9beb85d4d.tar.gz linux-d72dc8a25afc71ce90ee92bdd77550e9beb85d4d.tar.bz2 linux-d72dc8a25afc71ce90ee92bdd77550e9beb85d4d.zip |
mm: make pagevec_lookup() update index
Make pagevec_lookup() (and underlying find_get_pages()) update index to
the next page where iteration should continue. Most callers want this
and also pagevec_lookup_tag() already does this.
Link: http://lkml.kernel.org/r/20170726114704.7626-3-jack@suse.cz
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fscache')
-rw-r--r-- | fs/fscache/page.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/fscache/page.c b/fs/fscache/page.c index c8c4f79c7ce1..83018861dcd2 100644 --- a/fs/fscache/page.c +++ b/fs/fscache/page.c @@ -1178,11 +1178,10 @@ void __fscache_uncache_all_inode_pages(struct fscache_cookie *cookie, pagevec_init(&pvec, 0); next = 0; do { - if (!pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)) + if (!pagevec_lookup(&pvec, mapping, &next, PAGEVEC_SIZE)) break; for (i = 0; i < pagevec_count(&pvec); i++) { struct page *page = pvec.pages[i]; - next = page->index; if (PageFsCache(page)) { __fscache_wait_on_page_write(cookie, page); __fscache_uncache_page(cookie, page); @@ -1190,7 +1189,7 @@ void __fscache_uncache_all_inode_pages(struct fscache_cookie *cookie, } pagevec_release(&pvec); cond_resched(); - } while (++next); + } while (next); _leave(""); } |