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 F02CAC54755 for ; Thu, 15 May 2025 06:53:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 199616B00DA; Thu, 15 May 2025 02:53:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E2E46B0107; Thu, 15 May 2025 02:53:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C51E06B0104; Thu, 15 May 2025 02:53:54 -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 9BB546B0100 for ; Thu, 15 May 2025 02:53:54 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 75DFA1A1365 for ; Thu, 15 May 2025 06:53:54 +0000 (UTC) X-FDA: 83444227188.20.363D9C4 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by imf20.hostedemail.com (Postfix) with ESMTP id 00F341C000A for ; Thu, 15 May 2025 06:53:50 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of shikemeng@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747292032; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Bks58Qg8uSBSriFoBSkypo88zXlZoqh2RJys/Y9lxGs=; b=L13vAClFthBPqgkfdm+Lw6Kfz4xaiQ8lzzRcoyRRpFbV3TlOBm99hMWWi8zMGzasrBYW6M O3OLye7f3Fpu3AGQFybuSaj9l2jQ9dvb19V7xy+lC47WRj6swOieLLMPub8xuKwWuU9ZSf S+tM9lrDg3hoy7jWVh+/XcupboqhInw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747292032; a=rsa-sha256; cv=none; b=C8zpmW6I23mog9s18aNTRyBnni42rxBqUGBr1lGF7bTMp/VVfeb2vl/JLgtLOjQ52Bjy8s PPHp4H17E6267iaQ08enRrMJHbel5ZozrUGHfUhJ93Qmpq61CsFj+5NsZ3UufP9K/UPvTd Fr+heb9/5Al+UllnBeyHKB1JqDiShCo= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of shikemeng@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4Zygsm0ZClzKHMhC for ; Thu, 15 May 2025 14:53:48 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.128]) by mail.maildlp.com (Postfix) with ESMTP id AC82E1A018D for ; Thu, 15 May 2025 14:53:46 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.101.6]) by APP4 (Coremail) with SMTP id gCh0CgAHbGB3jyVoyDnbMQ--.29023S6; Thu, 15 May 2025 14:53:46 +0800 (CST) From: Kemeng Shi To: hughd@google.com, baolin.wang@linux.alibaba.com, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/5] mm: shmem: only remove inode from swaplist when it's swapped page count is 0 Date: Thu, 15 May 2025 23:47:57 +0800 Message-Id: <20250515154758.956521-5-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20250515154758.956521-1-shikemeng@huaweicloud.com> References: <20250515154758.956521-1-shikemeng@huaweicloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:gCh0CgAHbGB3jyVoyDnbMQ--.29023S6 X-Coremail-Antispam: 1UD129KBjvdXoWrtw18Wr1rtw18WFyUWrWxWFg_yoWDZFb_Wa 10qw15WrW7Wrs7uF42kas3tF9Yg3y8Kr1DCF93tFW7CF9Igr4kZan8X3yfWayxuay5XFn8 G3WkAr12krnFgjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbqkYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l87I20VAvwVAaII0Ic2I_JFv_Gryl82 xGYIkIc2x26280x7IE14v26r126s0DM28IrcIa0xkI8VCY1x0267AKxVW8JVW5JwA2ocxC 64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM2 8EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq 3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCY1x0262kKe7 AKxVWUAVWUtwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj xVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r 1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07jv Wl9UUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-Stat-Signature: zfisjqa48cqxmqngphx19ftrkh84195u X-Rspamd-Queue-Id: 00F341C000A X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747292030-798934 X-HE-Meta: U2FsdGVkX1+vwPiWd4JkTqpj9XBEo2AQvbQIuyZLdmyy5biYsYFyynss7WhuKkhKcLJg3/icPoX27XO/EsN3nJyBJpyLTSn5WVYriXthDTVp2KkSC4fok6KtBeD/gGoN2EgSOb4c4834JZXtaFGu0TnQP5xwkNq+y1wJjVklV6pZoZQiv8DVE5olBoWXmmsI7rjI2dUavsk9rhWhuR8o8gH21sm5aj4l+rpsPjASAagdiP8IbIckUJL+WX7/f9OEe1OEtmiqsQ0+wjFkxv92Ryx+Fj9XYVU2w5P9makMWA9P2wKsKvabORxOlh55tosJiCIHQS5r3SpzT7TSkih3XlX4dRBETTjkCDHWoiVy9buHYn8u/GZDCvJC+b7hIII67GRoJBl2afwfhkpTwg7OtRw4BUhw7Ybv+cm5w25YdTus0Z2R/Qgc39wzlAGVhb2aUUED2V+ZRvOHgoVQVJkYWDGTUz+z2mvCrM5keP+FXhEnCzw2t4AotNmIrfAPI1cOh5XIrA3H0li+oyw0U34xNV4dTSbeyivArpXwXwmwKT1j4pxjVBeSo9um+WmM2j0KzDCfUcQE1PaZi3TC5rtBNMh8UYaZYwn9EDSnKR5qprw3/7LPbuzTzX7AenOtXduXWvxNUU+KP7QNbHh299doZA3lFtOMaghb//geksojAl7vrXIRTZsMAPXx0g3Ryum/BuHQ22wpLzcf15A1I/KkCiA0BgFcdIi2S7zIE/3FojIV1pk5NKw8/eV6B5VIR4dSOFkMvqSXZhGNpM2/GMHifbXLOejjJcMC6bJMbK7o5aTf9pxuXRPjl0uQjqdJuHtvDpszFYGxVmekaJThwU0wkj5wwi4XHR0Sz1xK2aZWZ1I0MjrAW7jFF9emiSIHY74w4yoPaRcfHNWGf2sHffOOuBuhPllyt8ub/vRKaQSl2WLxJ0gtYMSqPsKAAnUxcbuYHeprYkQ7S3ZezAQShPu fhc874g4 VN6ZKFcmDrp69Db70vLeWdV4naH9wzW8FdCqOK/LRAqJF2X8JxzVRBBoWaKnpgi7h3NDSWPrqPw3LAFTecsXFKde0luNUDajvPiAzD0jT/YNVvpRlWhDcy4BsfUI6gncMsmzitzCh7Tl15EgbRex0fwq3cPnlIn8GpyME 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: Even if we fail to allocate a swap entry, the inode might have previously allocated entry and we might take inode containing swap entry off swaplist. As a result, try_to_unuse() may enter a potential dead loop to repeatedly look for inode and clean it's swap entry. Only take inode off swaplist when it's swapped page count is 0 to fix the issue. Fixes: b487a2da3575b ("mm, swap: simplify folio swap allocation") Signed-off-by: Kemeng Shi --- mm/shmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index aeeddf612baa..07b8e1400c67 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1651,8 +1651,8 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) BUG_ON(folio_mapped(folio)); return swap_writepage(&folio->page, wbc); } - - list_del_init(&info->swaplist); + if (!info->swapped) + list_del_init(&info->swaplist); mutex_unlock(&shmem_swaplist_mutex); if (nr_pages > 1) goto try_split; -- 2.30.0