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 E294AC00140 for ; Mon, 8 Aug 2022 19:35:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B88094000B; Mon, 8 Aug 2022 15:35:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 73F9D940007; Mon, 8 Aug 2022 15:35:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E0C794000B; Mon, 8 Aug 2022 15:35:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 4948D940007 for ; Mon, 8 Aug 2022 15:35:12 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 322031C6449 for ; Mon, 8 Aug 2022 19:35:12 +0000 (UTC) X-FDA: 79777428864.01.745BE35 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id CB0A12017C for ; Mon, 8 Aug 2022 19:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=s4LgfjgMSKwodnJCulgKaAjoW6t9ZjF90g5FC669hGQ=; b=t2bXWmVScpPPjMd+JapjtU+qWL SRzNQkk6dpcKCvWIg5HeaC1qiplG03fkYj1DGdIdsA/a19UDoDYBTfEgfbedbVAhl61HYBhbFlD+e 3C/A8Xe4NT6cOQ9xLykyuR6OViT1thsiXdq1AfQH82Rt2j5e1cmvs4MGVFHiYPJtLrLIGZaJIgtCN ecyXGtMhBBGLfaSICuKtXzlPBSyL3+jHn7ZP2ZDcRce7dQ8+NBW+u7zfB/BL0kokwOzuCKxqnQhH4 zGiA7wGAjBRjJiihqbkKTzq6/1N14uOlhcxEECAFBfOZ7UzmjDoY8L13qUaliQ2iC9za2NWHX/pbU i1In/vFQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1oL8WR-00EAs8-GG; Mon, 08 Aug 2022 19:34:45 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" , hughd@google.com, stable@vger.kernel.org, William Kucharski Subject: [PATCH 02/59] shmem: Update folio if shmem_replace_page() updates the page Date: Mon, 8 Aug 2022 20:33:30 +0100 Message-Id: <20220808193430.3378317-3-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220808193430.3378317-1-willy@infradead.org> References: <20220808193430.3378317-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1659987311; a=rsa-sha256; cv=none; b=ES6CxCXvO/9ZkG+87QZ7Mu2NujfXN+E30WpaM8v+ixIbpo4KnHHZ4EMEb7F7/lgNNLWkSz RI6iLEdypukjMNqpQL5cudFGci6BifflhqL6pU0ygKM8uaK7K/P/5BE0GCF/JVcfXygM2d YMyu2bPW1Xs9FDHY1bXZeF1f9hQSFow= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=t2bXWmVS; dmarc=none; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659987311; 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:dkim-signature; bh=s4LgfjgMSKwodnJCulgKaAjoW6t9ZjF90g5FC669hGQ=; b=a8cmZD4D6Lv7wmam/t7UY77sfh9d47FpbKhvEvSHveTFB+dsyNwitXalJQM9IEPQKsZjRc eqyPslsskphbb1vTJZ6t4JbIRJ22aNu0Bm1EzDLTHOSupVYfIBcZUFR2FoQVIBl7Si9Yp1 ovKvrjHy0W3qdFS8EYTk0AbdbQ87tKE= X-Rspamd-Server: rspam10 X-Stat-Signature: x5xege1h1qgjsoyuo9jbg9u5mwczuoc7 Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=t2bXWmVS; dmarc=none; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org X-Rspam-User: X-Rspamd-Queue-Id: CB0A12017C X-HE-Tag: 1659987311-636029 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: If we allocate a new page, we need to make sure that our folio matches that new page. If we don't, we store the wrong folio in the shmem page cache which will lead to data corruption. This problem will be solved by changing shmem_replace_page() to shmem_replace_folio(), but this patch is the minimal fix. Fixes: da08e9b79323 ("mm/shmem: convert shmem_swapin_page() to shmem_swapin_folio()") Cc: stable@vger.kernel.org Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: William Kucharski --- mm/shmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/shmem.c b/mm/shmem.c index e975fcd9d2e1..4ae43cffeda3 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1780,6 +1780,7 @@ static int shmem_swapin_folio(struct inode *inode, pgoff_t index, if (shmem_should_replace_folio(folio, gfp)) { error = shmem_replace_page(&page, gfp, info, index); + folio = page_folio(page); if (error) goto failed; } -- 2.35.1