mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 09:12:07 +00:00
mm/huge_memory: convert split_huge_pages_in_file() to use a folio
Patch series "Remove FGP_HEAD flag". We have just two users left of the FGP_HEAD flag and both of them are better off; sometimes startlingly so as a result of conversion to use folios. This patch (of 4): Removes a number of calls to compound_head() and a call to pagecache_get_page(). Link: https://lkml.kernel.org/r/20221019183332.2802139-1-willy@infradead.org Link: https://lkml.kernel.org/r/20221019183332.2802139-2-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
e025ab842e
commit
9ee2c08627
@ -3066,28 +3066,28 @@ static int split_huge_pages_in_file(const char *file_path, pgoff_t off_start,
|
||||
mapping = candidate->f_mapping;
|
||||
|
||||
for (index = off_start; index < off_end; index += nr_pages) {
|
||||
struct page *fpage = pagecache_get_page(mapping, index,
|
||||
FGP_ENTRY | FGP_HEAD, 0);
|
||||
struct folio *folio = __filemap_get_folio(mapping, index,
|
||||
FGP_ENTRY, 0);
|
||||
|
||||
nr_pages = 1;
|
||||
if (xa_is_value(fpage) || !fpage)
|
||||
if (xa_is_value(folio) || !folio)
|
||||
continue;
|
||||
|
||||
if (!is_transparent_hugepage(fpage))
|
||||
if (!folio_test_large(folio))
|
||||
goto next;
|
||||
|
||||
total++;
|
||||
nr_pages = thp_nr_pages(fpage);
|
||||
nr_pages = folio_nr_pages(folio);
|
||||
|
||||
if (!trylock_page(fpage))
|
||||
if (!folio_trylock(folio))
|
||||
goto next;
|
||||
|
||||
if (!split_huge_page(fpage))
|
||||
if (!split_folio(folio))
|
||||
split++;
|
||||
|
||||
unlock_page(fpage);
|
||||
folio_unlock(folio);
|
||||
next:
|
||||
put_page(fpage);
|
||||
folio_put(folio);
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user