From patchwork Sat Oct 31 09:00:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11871263 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BE272697 for ; Sat, 31 Oct 2020 09:24:12 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6CF87207DE for ; Sat, 31 Oct 2020 09:24:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="pNCl8HMF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6CF87207DE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8110D6B005C; Sat, 31 Oct 2020 05:24:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7C0126B0070; Sat, 31 Oct 2020 05:24:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AF9D6B0071; Sat, 31 Oct 2020 05:24:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0120.hostedemail.com [216.40.44.120]) by kanga.kvack.org (Postfix) with ESMTP id 3E0406B005C for ; Sat, 31 Oct 2020 05:24:11 -0400 (EDT) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id DAC48181AEF15 for ; Sat, 31 Oct 2020 09:24:10 +0000 (UTC) X-FDA: 77431684260.29.class49_2a130422729d Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id BCAED1808659F for ; Sat, 31 Oct 2020 09:24:10 +0000 (UTC) X-Spam-Summary: 1,0,0,762ebfbae0af1d3d,d41d8cd98f00b204,batv+e1c4655336593cdcfc57+6278+infradead.org+hch@casper.srs.infradead.org,,RULES_HIT:41:355:379:541:800:960:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1541:1711:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:3866:3867:3868:3870:3871:3874:4321:5007:6261:6653:8660:8957:9036:10004:11026:11658:11914:12043:12160:12296:12297:12438:12517:12519:12555:12895:12986:13069:13148:13184:13229:13230:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21939:21990:30012:30054,0,RBL:90.155.50.34:@casper.srs.infradead.org:.lbl8.mailshell.net-62.8.15.100 64.201.201.201;04yrk6gxrgnhk6d3sgbxj96zj4kr5opk5xun1yzeha6uwy1eab6s7dcxzds9nw6.w7bdngt3fghho6iuyn6mk8k19zf1dsao5im4fyp7ueftgwx5w5hw7pr549uc64y.a-lbl8.mailshell.net-223.238.255.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:68,LUA_SUMMARY:none X-HE-Tag: class49_2a130422729d X-Filterd-Recvd-Size: 2989 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP for ; Sat, 31 Oct 2020 09:24:10 +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=yKVVOMTwCnImkW5ZZzkJxy/4XZLiDS6CW2ha1meBT74=; b=pNCl8HMFl/ZfMB7x4SkgTn9wPM b/1K3v6VX0FxvwftNVE/87c5gYnkPUpHOhpFncnPfNTIfv9eU41QpNupj0BDEzVCiCGDOBo0j8NkK znV3xIYAkyPJu/yhML7/MvCYSdXeAkKufL2jD9QtsH07PI65W9g/ms9FfAs+7oej8hKgoH/cyZ4qc HtzB4XMge9GoGhuq88m3xe6WW/t407qJiNkVIZG1VrBrPOa1DY3026JVeUJX1kNYnuyzy2PF4a+Hr HHP9sANIklu0jN4aG8cCk8Xnub9wXI7qxvI2a5/4FLV+prll2MyzGabQKOnMO6GVPidE77Al2gLLB BSEFTyvg==; Received: from 089144193201.atnat0002.highway.a1.net ([89.144.193.201] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYn7H-0008Ma-Fx; Sat, 31 Oct 2020 09:24:08 +0000 From: Christoph Hellwig To: Andrew Morton Cc: Kent Overstreet , Matthew Wilcox , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: [PATCH 10/13] mm: open code readahead in filemap_new_page Date: Sat, 31 Oct 2020 10:00:01 +0100 Message-Id: <20201031090004.452516-11-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201031090004.452516-1-hch@lst.de> References: <20201031090004.452516-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html 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: Calling filemap_make_page_uptodate right after filemap_readpage in filemap_new_page is rather counterintuitive. The call is in fact only needed to issue async readahead, and is guaranteed to return just after that because the page is uptodate. Just open code the readahead related parts of filemap_make_page_uptodate instead. Signed-off-by: Christoph Hellwig --- mm/filemap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 5f4937715689e7..000f75cd359d1c 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2309,9 +2309,14 @@ static int filemap_new_page(struct kiocb *iocb, struct iov_iter *iter, error = filemap_readpage(iocb, *page); if (error) goto put_page; - error = filemap_make_page_uptodate(iocb, iter, *page, index, true); - if (error) - goto put_page; + if (PageReadahead(*page)) { + error = -EAGAIN; + if (iocb->ki_flags & IOCB_NOIO) + goto put_page; + page_cache_async_readahead(mapping, &iocb->ki_filp->f_ra, + iocb->ki_filp, *page, index, + (iter->count + PAGE_SIZE - 1) >> PAGE_SHIFT); + } return 0; put_page: put_page(*page);