@@ -1287,7 +1287,7 @@ static void retract_page_tables(struct address_space *mapping, pgoff_t pgoff)
1287
1287
}
1288
1288
1289
1289
/**
1290
- * collapse_shmem - collapse small tmpfs/shmem pages into huge one.
1290
+ * collapse_file - collapse small tmpfs/shmem pages into huge one.
1291
1291
*
1292
1292
* Basic scheme is simple, details are more complex:
1293
1293
* - allocate and lock a new huge page;
@@ -1304,10 +1304,11 @@ static void retract_page_tables(struct address_space *mapping, pgoff_t pgoff)
1304
1304
* + restore gaps in the page cache;
1305
1305
* + unlock and free huge page;
1306
1306
*/
1307
- static void collapse_shmem (struct mm_struct * mm ,
1308
- struct address_space * mapping , pgoff_t start ,
1307
+ static void collapse_file (struct mm_struct * mm ,
1308
+ struct file * file , pgoff_t start ,
1309
1309
struct page * * hpage , int node )
1310
1310
{
1311
+ struct address_space * mapping = file -> f_mapping ;
1311
1312
gfp_t gfp ;
1312
1313
struct page * new_page ;
1313
1314
struct mem_cgroup * memcg ;
@@ -1563,11 +1564,11 @@ static void collapse_shmem(struct mm_struct *mm,
1563
1564
/* TODO: tracepoints */
1564
1565
}
1565
1566
1566
- static void khugepaged_scan_shmem (struct mm_struct * mm ,
1567
- struct address_space * mapping ,
1568
- pgoff_t start , struct page * * hpage )
1567
+ static void khugepaged_scan_file (struct mm_struct * mm ,
1568
+ struct file * file , pgoff_t start , struct page * * hpage )
1569
1569
{
1570
1570
struct page * page = NULL ;
1571
+ struct address_space * mapping = file -> f_mapping ;
1571
1572
XA_STATE (xas , & mapping -> i_pages , start );
1572
1573
int present , swap ;
1573
1574
int node = NUMA_NO_NODE ;
@@ -1631,16 +1632,15 @@ static void khugepaged_scan_shmem(struct mm_struct *mm,
1631
1632
result = SCAN_EXCEED_NONE_PTE ;
1632
1633
} else {
1633
1634
node = khugepaged_find_target_node ();
1634
- collapse_shmem (mm , mapping , start , hpage , node );
1635
+ collapse_file (mm , file , start , hpage , node );
1635
1636
}
1636
1637
}
1637
1638
1638
1639
/* TODO: tracepoints */
1639
1640
}
1640
1641
#else
1641
- static void khugepaged_scan_shmem (struct mm_struct * mm ,
1642
- struct address_space * mapping ,
1643
- pgoff_t start , struct page * * hpage )
1642
+ static void khugepaged_scan_file (struct mm_struct * mm ,
1643
+ struct file * file , pgoff_t start , struct page * * hpage )
1644
1644
{
1645
1645
BUILD_BUG ();
1646
1646
}
@@ -1722,8 +1722,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages,
1722
1722
file = get_file (vma -> vm_file );
1723
1723
up_read (& mm -> mmap_sem );
1724
1724
ret = 1 ;
1725
- khugepaged_scan_shmem (mm , file -> f_mapping ,
1726
- pgoff , hpage );
1725
+ khugepaged_scan_file (mm , file , pgoff , hpage );
1727
1726
fput (file );
1728
1727
} else {
1729
1728
ret = khugepaged_scan_pmd (mm , vma ,
0 commit comments