From: Baoquan He <baoquan.he@linux.dev>
To: Chris Li <chrisl@kernel.org>, akpm@linux-foundation.org
Cc: linux-mm@kvack.org, usama.arif@linux.dev, baohua@kernel.org,
kasong@tencent.com, nphamcs@gmail.com, shikemeng@huaweicloud.com,
youngjun.park@lge.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/3] mm/swap: use swap_ops to register swap device's methods
Date: Thu, 23 Apr 2026 10:37:28 +0800 [thread overview]
Message-ID: <aemF6D3Do9FQYUOF@MiWiFi-R3L-srv> (raw)
In-Reply-To: <CACePvbVHgry4oeXeouML1YNscpuMNSXSnBY9wd-McDUar4tG1Q@mail.gmail.com>
On 04/22/26 at 05:33pm, Chris Li wrote:
> On Tue, Apr 21, 2026 at 6:48 PM Baoquan He <baoquan.he@linux.dev> wrote:
> >
> > On 04/17/26 at 07:30pm, Chris Li wrote:
> > > On Thu, Apr 16, 2026 at 8:40 PM Baoquan He <baoquan.he@linux.dev> 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.
>
> You don't have to repost it as a new series. You can post one small
> incremental update for the -EINVAL change and ask Andrew to fold it
> in.
>
> Hi Andrew,
>
> I think this swap ops series can be merge to mm-unstable with the
> review. Keep in mind that Baoquan might have a very minor follow up
> patch relate to -EINAL error code.
The incremental update is as below. I have built and test it.
diff --git a/mm/swap_io.c b/mm/swap_io.c
index 77aa8373c087..e2710d5fb44e 100644
--- a/mm/swap_io.c
+++ b/mm/swap_io.c
@@ -625,7 +625,7 @@ int init_swap_ops(struct swap_info_struct *sis)
sis->ops = &bdev_async_swap_ops;
if (!sis->ops || !sis->ops->read_folio || !sis->ops->write_folio)
- return -1;
+ return -EINVAL;
return 0;
}
diff --git a/mm/swapfile.c b/mm/swapfile.c
index af81fa212f1e..7644049a0919 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -3518,10 +3518,8 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
goto bad_swap_unlock_inode;
}
- if (init_swap_ops(si)) {
- error = -EINVAL;
+ if (error = init_swap_ops(si))
goto bad_swap_unlock_inode;
- }
si->max = maxpages;
si->pages = maxpages - 1;
next prev parent reply other threads:[~2026-04-23 2:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-17 3:39 [PATCH v4 0/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
2026-04-17 3:39 ` [PATCH v4 1/3] mm/swap: rename mm/page_io.c to mm/swap_io.c Baoquan He
2026-04-17 3:39 ` [PATCH v4 2/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
2026-04-18 2:30 ` Chris Li
2026-04-22 1:48 ` Baoquan He
2026-04-23 0:33 ` Chris Li
2026-04-23 2:37 ` Baoquan He [this message]
2026-04-23 10:28 ` Usama Arif
2026-04-23 21:48 ` Chris Li
2026-04-24 4:47 ` Baoquan He
2026-04-24 22:14 ` Chris Li
2026-04-17 3:39 ` [PATCH v4 3/3] mm/swap_io.c: rename swap_writepage_* to swap_write_folio_* Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aemF6D3Do9FQYUOF@MiWiFi-R3L-srv \
--to=baoquan.he@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=chrisl@kernel.org \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=shikemeng@huaweicloud.com \
--cc=usama.arif@linux.dev \
--cc=youngjun.park@lge.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.