From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D9BBC2D0CD for ; Thu, 15 May 2025 09:43:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5DCF6B00BF; Thu, 15 May 2025 05:43:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0CA56B00C1; Thu, 15 May 2025 05:43:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE0D06B00CD; Thu, 15 May 2025 05:43:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9DD5B6B00BF for ; Thu, 15 May 2025 05:43:01 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id AC2A012168E for ; Thu, 15 May 2025 09:43:02 +0000 (UTC) X-FDA: 83444653404.29.5F824B7 Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by imf05.hostedemail.com (Postfix) with ESMTP id BDE28100008 for ; Thu, 15 May 2025 09:43:00 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="PzC/GJw+"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747302180; a=rsa-sha256; cv=none; b=owDO5IvPIeCqYdpfcvgX9nzG5dr5F56mauINtVAKy3+XWGsbazUxyT7pL/zTZX3udtCxv3 YD++OpEy8B7bpLPWGO/22AdhY034sIHNAYKJus1Yjk8DjY1ASOMj7ZnksuUlH7YC3H8pqY KazPCMzlxmhRuz1ITJ2Wm/RUgfm99BQ= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="PzC/GJw+"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747302180; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QSoJsMMID/Gsu+/PBfKDktnH99/TWY47+ywS73Ttvts=; b=Ufh3hx79SwER+PGouesCbIs/n0ObHWaWo905GwJTMANj9sEBn0pRmApkgsnyRbSPjI3hEw y2qjI2qb/CAoHNwZTiQI2h9YDOiuAXZmur8DiI/N7j5ZB7CFzmPz08j12hz7C5nBcK4FYz KIOyjKltqGQPU2qzckRtEtkLiAIIGWw= Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-30db1bd3bebso6203741fa.2 for ; Thu, 15 May 2025 02:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747302179; x=1747906979; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=QSoJsMMID/Gsu+/PBfKDktnH99/TWY47+ywS73Ttvts=; b=PzC/GJw+U/fSg4eBoL/VkEGSc8D4nG4YRPU8cGEk7X+APxYo2BKh71PW30pLAnzQld 3HW67Mjuv35LpV8dtiqWOYadUXG5TApuwYQp1wyp4t8DTRXuXCvt5CKxb9nUflVeUoGP hZL2Oig2+O6HWzOk4eo0ldDO/eJrXAesh7fnVSXZErMbAoNXDlXju0WjE5CAw2A4PzyG pqsGo3Clf7XaD8WrwJWpAYDQ61XIXb1aU8ezjRmNTgmo5a9Qq8I3u9hxyk/z4D83MNVB +qeczgLrpDg7b26GNULX7kzhXOX6Oxz6DET1KYkngLpSAnKlrqhXX7rRKd+Zq9Ag4Z47 870g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747302179; x=1747906979; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QSoJsMMID/Gsu+/PBfKDktnH99/TWY47+ywS73Ttvts=; b=S9wBhGYfP55IPvpZoYbwugRIdGfiKPRJ89sHHSnD2fJ3N6fzkXQHZwNEDc9jeG3kHk eYOp7SA6b+TYbLeXQhMN8duESJ+itnWLeltVLeBRgelGb/9buUMHRukF1bmO5tzhqOew TOeuQwBNhU6nmefA+P4zyveriejqXhV1PCJJi4F3jSCPFLPxDuowFsJpcyHheYhQq+vX 0G1xFNYrhvHLZ4a2I2laTEoD2wCG1TAKnV4xUCSrtGFzs8iGgfusvkmcDmFjYxHyVBMb hcFTwOqinOt2FlZfYSaKXuK68DmE0KqoPdz0KEE5HC/v+r6r7ilcM+U1dFtF4eGAOyiL 08zw== X-Forwarded-Encrypted: i=1; AJvYcCWIsi8nEiEkyRzRlS5cRGhem7gvgdDhGC/6oi++cKVgMTP7b4FUctYuTWoeFtAZw+HowFck6bQMQQ==@kvack.org X-Gm-Message-State: AOJu0YzhVDPeYxn7iwjZ1fAvxadGvgilSqrPOba7gylwy2KQh1h/npNg GPaSQYL3X70i5ucQRrD4LUfeZAi04/h+vFfAybeaHOelkiGbAgD2VE3lcVUk4Kk/l9i75gGAF/k rcC7axvcmbGQSXN6aVcGz+Z1pbDA= X-Gm-Gg: ASbGncvOjFWQL8Ihy8JEWFk0y62xiiHUZ4f0lpwCDVLeoINY9hti/yiggKPhATlFrDI B4eBz8PpzskmbH+A38QhIBgcquh03rxM6r4f1iIjoyAG6YEN1aLs/GFDJ6EZ8CWDrpLsYOMvVUE YItiBAMvQUWO9eGlqYjRtQQOFE0YzLg0Y5IOuZ1FmjCaA= X-Google-Smtp-Source: AGHT+IFK6XC+Qi7dUXMS8rDolWdRj0H43CP7C7piezecVYmK8iet2iB7VFXlmNpgTHx/sSukM84LJzaWKtyq0HYQpWw= X-Received: by 2002:a2e:bcc8:0:b0:30b:fe19:b07a with SMTP id 38308e7fff4ca-327fac54739mr8347941fa.25.1747302178967; Thu, 15 May 2025 02:42:58 -0700 (PDT) MIME-Version: 1.0 References: <20250515154758.956521-1-shikemeng@huaweicloud.com> <20250515154758.956521-2-shikemeng@huaweicloud.com> In-Reply-To: <20250515154758.956521-2-shikemeng@huaweicloud.com> From: Kairui Song Date: Thu, 15 May 2025 17:42:41 +0800 X-Gm-Features: AX0GCFupifVW6_5jV2E2V3n__1ogNC4pGxj3zt4_KgzPvFwv1ii2wBMkZy_qoV0 Message-ID: Subject: Re: [PATCH v2 1/5] mm: shmem: avoid unpaired folio_unlock() in shmem_swapin_folio() To: Kemeng Shi Cc: hughd@google.com, baolin.wang@linux.alibaba.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: BDE28100008 X-Rspam-User: X-Stat-Signature: eard4jqszm5fp5howh9zsk7tbeuigr3c X-HE-Tag: 1747302180-248478 X-HE-Meta: U2FsdGVkX1/GmS81hJOQ2xcHdZK5zu0ibBzt85trHVz9zRWZFSuXB5zZpYTjG2nuJRMtdLx/RoN8W1ZAZ9mtOJEvQaGYHwHKz2d2ZVz1GzThW20hXkW6DxoNyUMoMQdFqOu5mpFfsFpQ2DplhKTzeofjyox4iJU8XL+zXC6QDfDh9gCFH/WmYh6emm6Sum1TfCV72dV1EU2SCEKg/lR+9rSdDO4hJO1FEBIMTMJP9y9Mp31/kneA20Jp/Qs+zOIG+w0I/anV6FGWudeQPV4f+R7iZ8jaoBgqwoW8bq/Akew35gjQkuwkE0RiW7g9ugZ0GYBzyI65opqmn/wRnuQWxd8yi1UsQOc2Pbv+ICuITEIIgBrbA3NCeJsjWi0agAaq871G07ZP9jYKhzDjVKd4jCbDzoH0z4iPpXTE8uwxIjJaG+H3V1ilDiBHSQqZ48+cgeV4vuxYcD41iILYfI2sZjcgDfZxp8qrn1XHJOA++QZXt7z/yuc6ztvCXiJiQMOzfreXatUJUzr6vjgknKDPFoRonKgomhFF9tfOsCxwauzu1CbsY7fumMCW44k35+qx46foP7Xq/hyZDmHskxqau8QuVnrlB8z6H+NVX3Mx5qRkGGPY20/Fcp3OXSlKzx0Nv2ZiaSowWThGuz30eZC1TCwxZp5JqHkxuYBrsTShaQe/km8Ayse/O4CLN4dkF5TrT1f+YLJES0LpIkXIKIoaJRWSmkvxfF/vPiFtrMQ6wz9wQ8RX9zG1QjuPO1fF4LwFUk5+MwO9XiVBxMDlln3YZFY45Fj9o02SzjITKF7idVvkAKkiQVud3FpA8WAeHgrkkRYQgBp1ym/eIHKxbIx40vOKHHsj6CzDp2MXpqLLKPgQhcnB2kF6iLkdFquOHBGJLEM5+9CFrizbiYZX65z5ym/cA0Z64i6Hm8PisyJhcIN8nTqCnAlbBt1s6OrvgC3eFnDHAU8nbA7UeooWUcR Mv6aSTps d4yvBi5at5Cc1dIQy616djhouhChCCZY/eWekdbBAPD7z5VXfU0ZeZR2zH7Ja2aiyy0aLmlZ0Luj6FfeeisJvkpvGL6/ehq5elPkq31n5O86+iJ2mqdamZZD0ZK0J9/mxId0foiZDyShMRf8HkPssRb34KCfBTuVCsmnvTy5fzdb+fkORf+3RjtQuedFlGd1AFtyAOlYw/GPeQ6NFwm9+227j893G9umGF1cQL2tyBM6Djs5Bt914wvKETmOE4ydU8o8WoeKZpUDjTtbe1F9dw138q0+1XFrGR8n0ylUMBwpwGsjfT/SZPkpdJwU4klHT6tjWtOJGa1Wm7HVsDS2hW7ctW87meYXEEq8EbPGtv9LqtH7jRqRuqlOQcqdfKT9LW9n+Ksd8UGc36voca8z7lj/Zx5YrP8yvZtBCSz6j/97FZ//Cm1vcIPanZA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, May 15, 2025 at 2:54=E2=80=AFPM 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 sh= mem swapin") > Signed-off-by: Kemeng Shi > Reviewed-by: Baolin Wang > --- > 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 =3D shmem_split_large_entry(inode, index, swa= p, gfp); > if (split_order < 0) { > + folio_put(folio); > + folio =3D NULL; > error =3D split_order; > goto failed; > } Nice fix, I also noticed this and included the same fix in the swap table series and forgot to split that out. We should merge this clean fix first: Reviewed-by: Kairui Song