From patchwork Wed Mar 3 22:25:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 12114443 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CC31C433DB for ; Wed, 3 Mar 2021 22:26:13 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8EAC564ED4 for ; Wed, 3 Mar 2021 22:26:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8EAC564ED4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E6CCF6B0005; Wed, 3 Mar 2021 17:26:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DF5F26B0006; Wed, 3 Mar 2021 17:26:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C6EE66B0007; Wed, 3 Mar 2021 17:26:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0183.hostedemail.com [216.40.44.183]) by kanga.kvack.org (Postfix) with ESMTP id A72286B0005 for ; Wed, 3 Mar 2021 17:26:09 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 6D7635DC8 for ; Wed, 3 Mar 2021 22:26:09 +0000 (UTC) X-FDA: 77879997258.03.4CF773E Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf16.hostedemail.com (Postfix) with ESMTP id B1FD3801A811 for ; Wed, 3 Mar 2021 22:26:02 +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: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=ZcoL2mr1lmoxyY9eSUa9jIixayUOxgwcpOf1ShYSpb0=; b=E5TG6jFxttCVB6e+wzuYFhkdR+ gL3AggMlJ4rbmx96hJg3BqFeVvkwvbMCxQCldHZdyHTdK94wEw7Cw1E4irEl3sVBAAwmOSO/QrrME bpb0YIBSHGZiHxA+1pqtotJ5evOvxiHr4w2gvIDClmwLRUBlS8pgCx/tNs+Q9596JJF87jex3iwrX dPSoP7yZ6dPCk/AkBVB5dfTkzt8PD2Se4KJvrW8UUzTEFtlzSKxjI9MSYoiu4no94abEJdr9tCBpN s2+QIjNLOXKj33rsksEw9Gg9PiMovjqC53GAQdYxtuZPKl8TT8Y55TbMs79tCbZQtU61njZC38KuX o63GXTdQ==; Received: from willy by casper.infradead.org with local (Exim 4.94 #2 (Red Hat Linux)) id 1lHZwE-004Qxk-Go; Wed, 03 Mar 2021 22:25:55 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Miklos Szeredi Cc: "Matthew Wilcox (Oracle)" Subject: [PATCH] mm/filemap: Drop check for truncated page after I/O Date: Wed, 3 Mar 2021 22:25:47 +0000 Message-Id: <20210303222547.1056428-1-willy@infradead.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 X-Stat-Signature: fmrst7d9od8i3rukbk1hzkrdiomprua6 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B1FD3801A811 Received-SPF: none (infradead.org>: No applicable sender policy available) receiver=imf16; identity=mailfrom; envelope-from=""; helo=casper.infradead.org; client-ip=90.155.50.34 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1614810362-785120 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 the I/O completed successfully, the page will remain Uptodate, even if it is subsequently truncated. If the I/O completed with an error, this check would cause us to retry the I/O if the page were truncated before we woke up. There is no need to retry the I/O; the I/O to fill the page failed, so we can legitimately just return -EIO. This code was originally added by commit 56f0d5fe6851 ("[PATCH] readpage-vs-invalidate fix") in 2005 (this commit ID is from the linux-fullhistory tree; it is also commit ba1f08f14b52 in tglx-history). At the time, truncate_complete_page() called ClearPageUptodate(), and so this was fixing a real bug. In 2008, commit 84209e02de48 ("mm: dont clear PG_uptodate on truncate/invalidate") removed the call to ClearPageUptodate, and this check has been unnecessary ever since. It doesn't do any real harm, but there's no need to keep it. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: William Kucharski --- mm/filemap.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 8d3e0daed7c9..3d1635d3be3e 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2238,8 +2238,6 @@ static int filemap_read_page(struct file *file, struct address_space *mapping, return error; if (PageUptodate(page)) return 0; - if (!page->mapping) /* page truncated */ - return AOP_TRUNCATED_PAGE; shrink_readahead_size_eio(&file->f_ra); return -EIO; }