static bool __maybe_unused seq_is_valid(struct lruvec *lruvec)
 {
-       /* see the comment on lru_gen_struct */
+       /* see the comment on lru_gen_folio */
        return get_nr_gens(lruvec, LRU_GEN_FILE) >= MIN_NR_GENS &&
               get_nr_gens(lruvec, LRU_GEN_FILE) <= get_nr_gens(lruvec, LRU_GEN_ANON) &&
               get_nr_gens(lruvec, LRU_GEN_ANON) <= MAX_NR_GENS;
 static void read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain,
                          struct ctrl_pos *pos)
 {
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        int hist = lru_hist_from_seq(lrugen->min_seq[type]);
 
        pos->refaulted = lrugen->avg_refaulted[type][tier] +
 static void reset_ctrl_pos(struct lruvec *lruvec, int type, bool carryover)
 {
        int hist, tier;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        bool clear = carryover ? NR_HIST_GENS == 1 : NR_HIST_GENS > 1;
        unsigned long seq = carryover ? lrugen->min_seq[type] : lrugen->max_seq + 1;
 
 static int folio_inc_gen(struct lruvec *lruvec, struct folio *folio, bool reclaiming)
 {
        int type = folio_is_file_lru(folio);
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
        unsigned long new_flags, old_flags = READ_ONCE(folio->flags);
 
 static void reset_batch_size(struct lruvec *lruvec, struct lru_gen_mm_walk *walk)
 {
        int gen, type, zone;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        walk->batched = 0;
 
 {
        int zone;
        int remaining = MAX_LRU_BATCH;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
 
        if (type == LRU_GEN_ANON && !can_swap)
 {
        int gen, type, zone;
        bool success = false;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        DEFINE_MIN_SEQ(lruvec);
 
        VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
                ;
        }
 
-       /* see the comment on lru_gen_struct */
+       /* see the comment on lru_gen_folio */
        if (can_swap) {
                min_seq[LRU_GEN_ANON] = min(min_seq[LRU_GEN_ANON], min_seq[LRU_GEN_FILE]);
                min_seq[LRU_GEN_FILE] = max(min_seq[LRU_GEN_ANON], lrugen->min_seq[LRU_GEN_FILE]);
 {
        int prev, next;
        int type, zone;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        spin_lock_irq(&lruvec->lru_lock);
 
        bool success;
        struct lru_gen_mm_walk *walk;
        struct mm_struct *mm = NULL;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
 
        unsigned long old = 0;
        unsigned long young = 0;
        unsigned long total = 0;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
 
        for (type = !can_swap; type < ANON_AND_FILE; type++) {
        int delta = folio_nr_pages(folio);
        int refs = folio_lru_refs(folio);
        int tier = lru_tier_from_refs(refs);
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        VM_WARN_ON_ONCE_FOLIO(gen >= MAX_NR_GENS, folio);
 
        int scanned = 0;
        int isolated = 0;
        int remaining = MAX_LRU_BATCH;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
 
        VM_WARN_ON_ONCE(!list_empty(list));
 
 static bool __maybe_unused state_is_valid(struct lruvec *lruvec)
 {
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        if (lrugen->enabled) {
                enum lru_list lru;
        int i;
        int type, tier;
        int hist = lru_hist_from_seq(seq);
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        for (tier = 0; tier < MAX_NR_TIERS; tier++) {
                seq_printf(m, "            %10d", tier);
        unsigned long seq;
        bool full = !debugfs_real_fops(m->file)->write;
        struct lruvec *lruvec = v;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
        int nid = lruvec_pgdat(lruvec)->node_id;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
        DEFINE_MAX_SEQ(lruvec);
 {
        int i;
        int gen, type, zone;
-       struct lru_gen_struct *lrugen = &lruvec->lrugen;
+       struct lru_gen_folio *lrugen = &lruvec->lrugen;
 
        lrugen->max_seq = MIN_NR_GENS + 1;
        lrugen->enabled = lru_gen_enabled();