There's no user of swap_active_head, remove it now. Signed-off-by: Baoquan He --- include/linux/swap.h | 1 - mm/swapfile.c | 20 ++++---------------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index 5b7a39b20f58..dfc0cc9fc166 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -296,7 +296,6 @@ struct swap_info_struct { struct percpu_ref users; /* indicate and keep swap device valid. */ unsigned long flags; /* SWP_USED etc: see above */ signed short prio; /* swap priority of this type */ - struct plist_node list; /* entry in swap_active_head */ signed char type; /* strange name for an index */ unsigned int max; /* extent of the swap_map */ unsigned char *swap_map; /* vmalloc'ed array of usage counts */ diff --git a/mm/swapfile.c b/mm/swapfile.c index 18b52cc20749..80b34dc86a95 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -85,17 +85,10 @@ static const char Bad_offset[] = "Bad swap offset entry "; static const char Unused_offset[] = "Unused swap offset entry "; /* - * all active swap_info_structs - * protected with swap_lock, and ordered by priority. - */ -static PLIST_HEAD(swap_active_head); - -/* - * all available (active, not full) swap_info_structs - * protected with swap_avail_lock, ordered by priority. - * This is used by folio_alloc_swap() instead of swap_active_head - * because swap_active_head includes all swap_info_structs, - * but folio_alloc_swap() doesn't need to look at full ones. + * All available (active, not full) swap_info_structs protected with + * swap_avail_lock, ordered by priority. + * This is used by folio_alloc_swap() because folio_alloc_swap() + * doesn't need to look at full ones. * This uses its own lock instead of swap_lock because when a * swap_info_struct changes between not-full/full, it needs to * add/remove itself to/from this list, but the swap_info_struct->lock @@ -2539,7 +2532,6 @@ static void setup_swap_info(struct swap_info_struct *si, int prio, * the plist prio is negated because plist ordering is * low-to-high, while swap ordering is high-to-low */ - si->list.prio = -si->prio; si->avail_list.prio = -si->prio; si->swap_map = swap_map; si->cluster_info = cluster_info; @@ -2553,8 +2545,6 @@ static void _enable_swap_info(struct swap_info_struct *si) assert_spin_locked(&swap_lock); - plist_add(&si->list, &swap_active_head); - /* Add back to available list */ add_to_avail_list(si, true); } @@ -2682,7 +2672,6 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) } spin_lock(&p->lock); del_from_avail_list(p, true); - plist_del(&p->list, &swap_active_head); atomic_long_sub(p->pages, &nr_swap_pages); total_swap_pages -= p->pages; spin_unlock(&p->lock); @@ -2958,7 +2947,6 @@ static struct swap_info_struct *alloc_swap_info(void) */ } p->swap_extent_root = RB_ROOT; - plist_node_init(&p->list, 0); plist_node_init(&p->avail_list, 0); p->flags = SWP_USED; spin_unlock(&swap_lock); -- 2.41.0