Re: [PATCH v4 2/3] mm/swap: use swap_ops to register swap device's methods
From: Baoquan He
Date: Tue Apr 21 2026 - 21:48:26 EST
On 04/17/26 at 07:30pm, Chris Li wrote:
> On Thu, Apr 16, 2026 at 8:40 PM Baoquan He <baoquan.he@xxxxxxxxx> wrote:
...snip...
> > +int init_swap_ops(struct swap_info_struct *sis)
> > +{
> > + /*
> > + * ->flags can be updated non-atomically, but that will
> > + * never affect SWP_FS_OPS, so the data_race is safe.
> > + */
> > + if (data_race(sis->flags & SWP_FS_OPS))
> > + sis->ops = &bdev_fs_swap_ops;
> > + /*
> > + * ->flags can be updated non-atomically, but that will
> > + * never affect SWP_SYNCHRONOUS_IO, so the data_race is safe.
> > + */
> > + else if (data_race(sis->flags & SWP_SYNCHRONOUS_IO))
> > + sis->ops = &bdev_sync_swap_ops;
> > + else
> > + sis->ops = &bdev_async_swap_ops;
> > +
> > + if (!sis->ops || !sis->ops->read_folio || !sis->ops->write_folio)
> > + return -1;
> Nitpick:
>
> For int type error return, you should use -EINVAL or some thing with
> error code. If you don't care about error code, change the return type
> to bool instead.
Thanks for careful reviewing, returning -EINVAL looks better, I will
change like that and repost.
Thanks
Baoquan