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

From: Baoquan He

Date: Thu May 14 2026 - 04:40:35 EST


On 05/14/26 at 02:41pm, Kairui Song wrote:
> On Thu, May 14, 2026 at 10:06 AM Baoquan He <baoquan.he@xxxxxxxxx> wrote:
> >
> > On 05/13/26 at 01:53am, Kairui Song wrote:
> > > On Tue, May 12, 2026 at 6:50 PM Baoquan He <baoquan.he@xxxxxxxxx> wrote:
......snip...
> > > > diff --git a/mm/swapfile.c b/mm/swapfile.c
> > > > index 4840fd40f36f..8c42632e6765 100644
> > > > --- a/mm/swapfile.c
> > > > +++ b/mm/swapfile.c
> > > > @@ -3780,6 +3780,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;
> > >
> > > I checked the comment above previously and it looked good. But the
> > > error label seems not that correct after double check. inode->i_flags
> > > will keep the S_SWAPFILE flag. Maybe something like add a
> > > inode->i_flags &= ~S_SWAPFILE here and goto free_swap_zswap. Sorry I
> > > didn't check this part carefully last time.
> >
> > Right. How about moving it zswap_swapon() because it only relies on
> > si->flags setting currently?
>
> You mean before zswap_swapon()? Then that sounds good to me.

Yeah, just before zswap_swapon(). I missed a word.