[PATCH v6 0/3] mm/swap: use swap_ops to register swap device's methods

Baoquan He posted 3 patches 1 month ago
There is a newer version of this series
MAINTAINERS                 |   2 +-
include/linux/swap.h        |   2 +
mm/Makefile                 |   2 +-
mm/swap.h                   |  12 ++++-
mm/{page_io.c => swap_io.c} | 104 ++++++++++++++++++++----------------
mm/swapfile.c               |   9 ++++
mm/zswap.c                  |   2 +-
7 files changed, 83 insertions(+), 50 deletions(-)
rename mm/{page_io.c => swap_io.c} (90%)
[PATCH v6 0/3] mm/swap: use swap_ops to register swap device's methods
Posted by Baoquan He 1 month ago
This can simplify the code logic and benefit any new type of swap device
added later.

And also do renaming in this patchset:
-------
   file renaming:
   ---
   mm/page_io.c to mm/swap_io.c

   function renaming:
   ---
   swap_writepage_* to swap_write_folio_* in file mm/swap_io.c

Changlog:
===
-v6:
 * Fix a code bug Kairui found out when reviewing patch in mm/swapfile.c
   in patch 2/3. Has fixed it by moving it to appropriate place and add
   comment to explain.

-v5:
 * Change the return value of init_swap_ops() as -EINVAL as per Chris's
   suggestion and adjust its invocation in swapon() accordingly.
 * Add Chris and Usama's Ack tags.

-v4:
 * Fix a typo opeations -> operations
 * Fix a code bug inside init_swap_ops(). I was taking a change at the
   time, thought the change is trivial, so I only compiled but didn't
   run kernel to test in v3. Now fix it and test passed.
   Thanaks to Usama for catching the above two issues.

-v3:
 * Rename setup_swap_ops() to init_swap_ops() which reflect the function
   behaviour a little better
 * Check if sis->ops, sis->ops->read_folio and sis->ops->write_folio is
   NULL in init_swap_ops(), but not spread them where they are called.
   And once the checking failed, fail swapon immediately. This is
   suggested by Chris.
 * Call init_swap_ops() before setup_swap_extents() invocation. This
   doesn't harm anything and can benefit later adding sis->ops->swap_activate
   method.

-v2:
 * lots of cleanup for patch 2/3: renaming, moving data
   structures, and using const properly
 * collected tags from Kairui, Nhat and Barry

-v1:
 https://lore.kernel.org/linux-mm/20260302104016.163542-1-bhe@redhat.com/

Baoquan He (3):
  mm/swap: rename mm/page_io.c to mm/swap_io.c
  mm/swap: use swap_ops to register swap device's methods
  mm/swap_io.c: rename swap_writepage_* to swap_write_folio_*

 MAINTAINERS                 |   2 +-
 include/linux/swap.h        |   2 +
 mm/Makefile                 |   2 +-
 mm/swap.h                   |  12 ++++-
 mm/{page_io.c => swap_io.c} | 104 ++++++++++++++++++++----------------
 mm/swapfile.c               |   9 ++++
 mm/zswap.c                  |   2 +-
 7 files changed, 83 insertions(+), 50 deletions(-)
 rename mm/{page_io.c => swap_io.c} (90%)

-- 
2.52.0