}
static unsigned int reclaim_folio_list(struct list_head *folio_list,
- unsigned int nr_scanned,
struct pglist_data *pgdat)
{
struct reclaim_stat stat;
list_del(&folio->lru);
folio_putback_lru(folio);
}
- trace_mm_vmscan_reclaim_pages(pgdat->node_id, nr_scanned, nr_reclaimed, &stat);
+ trace_mm_vmscan_reclaim_pages(pgdat->node_id, sc.nr_scanned, nr_reclaimed, &stat);
return nr_reclaimed;
}
unsigned long reclaim_pages(struct list_head *folio_list)
{
int nid;
- unsigned int nr_scanned = 0;
unsigned int nr_reclaimed = 0;
LIST_HEAD(node_folio_list);
unsigned int noreclaim_flag;
if (nid == folio_nid(folio)) {
folio_clear_active(folio);
list_move(&folio->lru, &node_folio_list);
- nr_scanned += folio_nr_pages(folio);
continue;
}
- nr_reclaimed += reclaim_folio_list(&node_folio_list, nr_scanned,
- NODE_DATA(nid));
- nr_scanned = 0;
+ nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid));
nid = folio_nid(lru_to_folio(folio_list));
} while (!list_empty(folio_list));
- nr_reclaimed += reclaim_folio_list(&node_folio_list, nr_scanned,
- NODE_DATA(nid));
+ nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid));
+
memalloc_noreclaim_restore(noreclaim_flag);
return nr_reclaimed;