Re: [PATCH v5 2/3] mm/swap: use swap_ops to register swap device's methods

From: Kairui Song

Date: Mon May 11 2026 - 10:47:13 EST


On Mon, May 11, 2026 at 8:17 PM Baoquan He <baoquan.he@xxxxxxxxx> wrote:
> Speaking of comments, do you think below sentences are OK to you?
>
> diff --git a/mm/swapfile.c b/mm/swapfile.c
> index 82d2c9b35b11..8012e5e334f9 100644
> --- a/mm/swapfile.c
> +++ b/mm/swapfile.c
> @@ -3518,10 +3518,6 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
> goto bad_swap_unlock_inode;
> }
>
> - error = init_swap_ops(si);
> - if (error)
> - goto bad_swap_unlock_inode;
> -
> si->max = maxpages;
> si->pages = maxpages - 1;
> nr_extents = setup_swap_extents(si, swap_file, &span);
> @@ -3616,6 +3612,15 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
> goto free_swap_zswap;
> }
>
> + /*
> + * init_swap_ops() sets si->ops based on flags. It does not need
> + * swapon_mutex, and must complete before enable_swap_info()
> + * exposes the device.
> + */
> + error = init_swap_ops(si);
> + if (error)
> + goto bad_swap_unlock_inode;
> +

Right, LGTM!
> mutex_lock(&swapon_mutex);
> prio = DEF_SWAP_PRIO;
> if (swap_flags & SWAP_FLAG_PREFER)