Commit 8faab642 authored by Jan Kara's avatar Jan Kara Committed by Linus Torvalds

f2fs: use find_get_pages_tag() for looking up single page

__get_first_dirty_index() wants to lookup only the first dirty page
after given index.  There's no point in using pagevec_lookup_tag() for
that.  Just use find_get_pages_tag() directly.

Link: http://lkml.kernel.org/r/20171009151359.31984-8-jack@suse.czSigned-off-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Reviewed-by: default avatarDaniel Jordan <daniel.m.jordan@oracle.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 028a63a6
...@@ -313,18 +313,19 @@ int f2fs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) ...@@ -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, static pgoff_t __get_first_dirty_index(struct address_space *mapping,
pgoff_t pgofs, int whence) pgoff_t pgofs, int whence)
{ {
struct pagevec pvec; struct page *page;
int nr_pages; int nr_pages;
if (whence != SEEK_DATA) if (whence != SEEK_DATA)
return 0; return 0;
/* find first dirty page index */ /* find first dirty page index */
pagevec_init(&pvec, 0); nr_pages = find_get_pages_tag(mapping, &pgofs, PAGECACHE_TAG_DIRTY,
nr_pages = pagevec_lookup_tag(&pvec, mapping, &pgofs, 1, &page);
PAGECACHE_TAG_DIRTY, 1); if (!nr_pages)
pgofs = nr_pages ? pvec.pages[0]->index : ULONG_MAX; return ULONG_MAX;
pagevec_release(&pvec); pgofs = page->index;
put_page(page);
return pgofs; return pgofs;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment