|
@@ -976,16 +976,12 @@ void __fscache_uncache_all_inode_pages(struct fscache_cookie *cookie,
|
|
|
|
|
|
pagevec_init(&pvec, 0);
|
|
|
next = 0;
|
|
|
- while (next <= (loff_t)-1 &&
|
|
|
- pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)
|
|
|
- ) {
|
|
|
+ do {
|
|
|
+ if (!pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE))
|
|
|
+ break;
|
|
|
for (i = 0; i < pagevec_count(&pvec); i++) {
|
|
|
struct page *page = pvec.pages[i];
|
|
|
- pgoff_t page_index = page->index;
|
|
|
-
|
|
|
- ASSERTCMP(page_index, >=, next);
|
|
|
- next = page_index + 1;
|
|
|
-
|
|
|
+ next = page->index;
|
|
|
if (PageFsCache(page)) {
|
|
|
__fscache_wait_on_page_write(cookie, page);
|
|
|
__fscache_uncache_page(cookie, page);
|
|
@@ -993,7 +989,7 @@ void __fscache_uncache_all_inode_pages(struct fscache_cookie *cookie,
|
|
|
}
|
|
|
pagevec_release(&pvec);
|
|
|
cond_resched();
|
|
|
- }
|
|
|
+ } while (++next);
|
|
|
|
|
|
_leave("");
|
|
|
}
|