|
@@ -313,18 +313,19 @@ int f2fs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
|
|
|
static pgoff_t __get_first_dirty_index(struct address_space *mapping,
|
|
|
pgoff_t pgofs, int whence)
|
|
|
{
|
|
|
- struct pagevec pvec;
|
|
|
+ struct page *page;
|
|
|
int nr_pages;
|
|
|
|
|
|
if (whence != SEEK_DATA)
|
|
|
return 0;
|
|
|
|
|
|
/* find first dirty page index */
|
|
|
- pagevec_init(&pvec, 0);
|
|
|
- nr_pages = pagevec_lookup_tag(&pvec, mapping, &pgofs,
|
|
|
- PAGECACHE_TAG_DIRTY, 1);
|
|
|
- pgofs = nr_pages ? pvec.pages[0]->index : ULONG_MAX;
|
|
|
- pagevec_release(&pvec);
|
|
|
+ nr_pages = find_get_pages_tag(mapping, &pgofs, PAGECACHE_TAG_DIRTY,
|
|
|
+ 1, &page);
|
|
|
+ if (!nr_pages)
|
|
|
+ return ULONG_MAX;
|
|
|
+ pgofs = page->index;
|
|
|
+ put_page(page);
|
|
|
return pgofs;
|
|
|
}
|
|
|
|