Message ID | 20170914131819.26266-8-jack@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri 15-09-17 21:43:03, Chao Yu wrote: > On 2017/9/14 21:18, Jan Kara wrote: > > __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. > > > > CC: Jaegeuk Kim <jaegeuk@kernel.org> > > CC: linux-f2fs-devel@lists.sourceforge.net > > Signed-off-by: Jan Kara <jack@suse.cz> > > Reviewed-by: Chao Yu <yuchao0@huawei.com> Thanks for the review! Honza
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 517e112c8a9a..f78b76ec4707 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -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; }
__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. CC: Jaegeuk Kim <jaegeuk@kernel.org> CC: linux-f2fs-devel@lists.sourceforge.net Signed-off-by: Jan Kara <jack@suse.cz> --- fs/f2fs/file.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)