From: Baolin Wang <baolin.wang@linux.alibaba.com>
To: Kemeng Shi <shikemeng@huaweicloud.com>,
hughd@google.com, akpm@linux-foundation.org
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/5] mm: shmem: avoid unpaired folio_unlock() in shmem_swapin_folio()
Date: Wed, 14 May 2025 16:51:33 +0800 [thread overview]
Message-ID: <aede5e8a-4e8b-4a06-bdc4-aefc82e4e282@linux.alibaba.com> (raw)
In-Reply-To: <20250514165047.946884-2-shikemeng@huaweicloud.com>
On 2025/5/15 00:50, Kemeng Shi wrote:
> If we get a folio from swap_cache_get_folio() successfully but encounter
> a failure before the folio is locked, we will unlock the folio which was
> not previously locked.
> Put the folio and set it to NULL when a failure occurs before the folio
> is locked to fix the issue.
>
> Fixes: 058313515d5aa ("mm: shmem: fix potential data corruption during shmem swapin")
> Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Good catch. LGTM.
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
> ---
> mm/shmem.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 99327c30507c..980fa15f393e 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2335,6 +2335,8 @@ static int shmem_swapin_folio(struct inode *inode, pgoff_t index,
> */
> split_order = shmem_split_large_entry(inode, index, swap, gfp);
> if (split_order < 0) {
> + folio_put(folio);
> + folio = NULL;
> error = split_order;
> goto failed;
> }
next prev parent reply other threads:[~2025-05-14 8:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-14 16:50 [PATCH 0/5] Some random fixes and cleanup to shmem Kemeng Shi
2025-05-14 16:50 ` [PATCH 1/5] mm: shmem: avoid unpaired folio_unlock() in shmem_swapin_folio() Kemeng Shi
2025-05-14 8:51 ` Baolin Wang [this message]
2025-05-14 16:50 ` [PATCH 2/5] mm: shmem: add missing shmem_unacct_size() in __shmem_file_setup() Kemeng Shi
2025-05-14 8:53 ` Baolin Wang
2025-05-14 16:50 ` [PATCH 3/5] mm/shmem: Fix potential dead loop in shmem_unuse() Kemeng Shi
2025-05-14 9:24 ` Baolin Wang
2025-05-15 1:05 ` Kemeng Shi
2025-05-15 3:59 ` Baolin Wang
2025-05-14 16:50 ` [PATCH 4/5] mm: shmem: keep inode in swaplist when failed to allocate swap entry in shmem_writepage() Kemeng Shi
2025-05-14 9:31 ` Baolin Wang
2025-05-15 1:09 ` Kemeng Shi
2025-05-14 16:50 ` [PATCH 5/5] mm/shmem: remove unneeded xa_is_value() check in shmem_unuse_swap_entries() Kemeng Shi
2025-05-14 9:31 ` Baolin Wang
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=aede5e8a-4e8b-4a06-bdc4-aefc82e4e282@linux.alibaba.com \
--to=baolin.wang@linux.alibaba.com \
--cc=akpm@linux-foundation.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shikemeng@huaweicloud.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.