From patchwork Fri Oct 16 16:04:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842073 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 966561744 for ; Fri, 16 Oct 2020 16:20:25 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4260A20848 for ; Fri, 16 Oct 2020 16:20:25 +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="vCH11OKZ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4260A20848 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 0171194000D; Fri, 16 Oct 2020 12:20:23 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EB829940007; Fri, 16 Oct 2020 12:20:22 -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 D819594000D; Fri, 16 Oct 2020 12:20:22 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0089.hostedemail.com [216.40.44.89]) by kanga.kvack.org (Postfix) with ESMTP id 28C97940007 for ; Fri, 16 Oct 2020 12:20:21 -0400 (EDT) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 062031EF1 for ; Fri, 16 Oct 2020 16:20:19 +0000 (UTC) X-FDA: 77378300958.10.spy23_060ba842721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin10.hostedemail.com (Postfix) with ESMTP id D235516A047 for ; Fri, 16 Oct 2020 16:20:18 +0000 (UTC) X-Spam-Summary: 1,0,0,9958905522a2819e,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1541:1567:1711:1714:1730:1747:1777:1792:2393:2553:2559:2562:3138:3139:3140:3141:3142:3865:3872:4321:4384:5007:6261:6653:8957:10004:11026:11658:11914:12043:12296:12297:12438:12555:12679:12895:13069:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21740:21990:30054:30090,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04ygiwippxcsrxmxs4zy3g3at8o5hopapsyrt39ps8dshq9rx1s6nobipza91st.36huwsf78fpscutxff9n9py8z99uxbb4whnd1thni75epew64rr9doq66h4ykn6.e-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:24,LUA_SUMMARY:none X-HE-Tag: spy23_060ba842721e X-Filterd-Recvd-Size: 2696 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf37.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:18 +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=J3dIYfqfYa58oXV6j+5Y6Rq8CwUVru9FXe4AJtaFdts=; b=vCH11OKZXL9NGakbK4kDvShlck 2N1p/5myGxqgcjko4iNvCq32P73BNcmWnyBns4QWj+n+rhh8u9pRPawGx4M/1w6lZdNSDKCOBAmuu 3hserHxEru/BWigBhy+IwlvYFFrboAtozx8dmlZxRdtv/qeJLtJCuV9TsZm+EfuNShRw7ZGdn1chk KRG0gGMEWkTIAy881LlpvLSntWo6aedRtfBL65ObCuTTG4i2qXjqSqwObEbNflG5bCEO3Czc/5+6x 8m9bPSZ5YR5dEHaTg2p1NlRx8+s5T44ihtgxdgxD5Mddr6DTxp1SdjsD1vwPk7ZjF2xVEw3jDHcEg z9W3ZX1g==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDl-0004s8-4B; Fri, 16 Oct 2020 16:04:45 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, David Howells , stable@vger.kernel.org Subject: [PATCH v3 01/18] cachefiles: Handle readpage error correctly Date: Fri, 16 Oct 2020 17:04:26 +0100 Message-Id: <20201016160443.18685-2-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: If ->readpage returns an error, it has already unlocked the page. Fixes: 5e929b33c393 ("CacheFiles: Handle truncate unlocking the page we're reading") Cc: stable@vger.kernel.org Signed-off-by: Matthew Wilcox (Oracle) --- fs/cachefiles/rdwr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c index 3080cda9e824..8bda092e60c5 100644 --- a/fs/cachefiles/rdwr.c +++ b/fs/cachefiles/rdwr.c @@ -121,7 +121,7 @@ static int cachefiles_read_reissue(struct cachefiles_object *object, _debug("reissue read"); ret = bmapping->a_ops->readpage(NULL, backpage); if (ret < 0) - goto unlock_discard; + goto discard; } /* but the page may have been read before the monitor was installed, so @@ -138,6 +138,7 @@ static int cachefiles_read_reissue(struct cachefiles_object *object, unlock_discard: unlock_page(backpage); +discard: spin_lock_irq(&object->work_lock); list_del(&monitor->op_link); spin_unlock_irq(&object->work_lock); From patchwork Fri Oct 16 16:04:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842009 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 C1E2717C9 for ; Fri, 16 Oct 2020 16:05:01 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6B81B216C4 for ; Fri, 16 Oct 2020 16:05:01 +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="BHe6AO+v" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6B81B216C4 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 2FCF394000F; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 25E83940010; Fri, 16 Oct 2020 12:04:53 -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 1535294000F; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0043.hostedemail.com [216.40.44.43]) by kanga.kvack.org (Postfix) with ESMTP id 571E994000D for ; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 4D5088249980 for ; Fri, 16 Oct 2020 16:04:51 +0000 (UTC) X-FDA: 77378261982.27.low47_4b0854d2721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin27.hostedemail.com (Postfix) with ESMTP id 324093D669 for ; Fri, 16 Oct 2020 16:04:51 +0000 (UTC) X-Spam-Summary: 1,0,0,ca254cd84bac7176,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973: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:3867:3868:4321:5007:6261:6653:8660:10004:11026:11658:11914:12043:12291:12296:12297:12555:12895:12986:13069:13148:13230:13311:13357:13894:14096:14181:14384:14394:14721:21080:21212:21451:21627:21939:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04y8kom7mygf3tfau1u5kdph83qj1ycn19du1xrgngb7gwkbsip6ddzk4z1zyai.73f7jzigukdy7awrcosim3bfiucw35jz9euqt4kop5uiqgxu1kuyo98d8chi8gw.4-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:25,LUA_SUMMARY:none X-HE-Tag: low47_4b0854d2721e X-Filterd-Recvd-Size: 3050 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:50 +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=SLkkZEVg2bXTvSR+l8GXD0xD/a/pq4p09uWc4mwKVwc=; b=BHe6AO+vza2Np4NUh6KPo5ot0F kLgV4JNwWZMZ+ayua4JSYUQcgRs1bFGO+nAvuH7i0uWcO3FeMCh1eXZtvV+0IvjkQpmHT9d2R+lL7 I9A06AwCfemdpNbxQI44lLNClgazMJ9zlYq1XBIux6VAEkZoKc8H4xcnCyReGZT+9S9pw0A36BwM8 gx6kaFKaUEwe6j/IT+RMGrcBuA44V2OO0yeMetwU3d0LmFDHbe0bPwLQ+BSx90wONKODVwhh66nC9 ZwJy1V03eb0/j/q9TABYkLHU/QPN/RoWF2mi1J7SLY9Uv5DYxscV8X40fIbw4R8YIx+psul4kY6+l SGRnnaaA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDl-0004sG-ET; Fri, 16 Oct 2020 16:04:45 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH v3 02/18] swap: Call aops->readahead if appropriate Date: Fri, 16 Oct 2020 17:04:27 +0100 Message-Id: <20201016160443.18685-3-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: Some filesystems have a synchronous readpage and an asynchronous readahead. Call the readahead operation if we're trying to do swap readahead. Signed-off-by: Matthew Wilcox (Oracle) --- mm/page_io.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mm/page_io.c b/mm/page_io.c index e485a6e8a6cd..faf5ccb42946 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -367,6 +367,24 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc, return ret; } +static int mapping_readpage(struct file *file, struct address_space *mapping, + struct page *page, bool synchronous) +{ + struct readahead_control ractl = { + .file = file, + .mapping = mapping, + ._index = page->index, + ._nr_pages = 1, + }; + + if (!synchronous && mapping->a_ops->readahead) { + mapping->a_ops->readahead(&ractl); + return 0; + } + + return mapping->a_ops->readpage(file, page); +} + int swap_readpage(struct page *page, bool synchronous) { struct bio *bio; @@ -395,9 +413,9 @@ int swap_readpage(struct page *page, bool synchronous) if (data_race(sis->flags & SWP_FS)) { struct file *swap_file = sis->swap_file; - struct address_space *mapping = swap_file->f_mapping; - ret = mapping->a_ops->readpage(swap_file, page); + ret = mapping_readpage(swap_file, swap_file->f_mapping, + page, synchronous); if (!ret) count_vm_event(PSWPIN); goto out; From patchwork Fri Oct 16 16:04:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842037 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 31E3E61C for ; Fri, 16 Oct 2020 16:05:23 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id A2AE9207BC for ; Fri, 16 Oct 2020 16:05:15 +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="V4+vkH2k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2AE9207BC 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 60817940012; Fri, 16 Oct 2020 12:04:56 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 594A7940011; Fri, 16 Oct 2020 12:04:56 -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 2D62C940012; Fri, 16 Oct 2020 12:04:56 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0241.hostedemail.com [216.40.44.241]) by kanga.kvack.org (Postfix) with ESMTP id 8AEE1940011 for ; Fri, 16 Oct 2020 12:04:55 -0400 (EDT) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 8B04C180AD807 for ; Fri, 16 Oct 2020 16:04:54 +0000 (UTC) X-FDA: 77378262108.18.men17_62113ae2721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin18.hostedemail.com (Postfix) with ESMTP id 67738100CAA94 for ; Fri, 16 Oct 2020 16:04:54 +0000 (UTC) X-Spam-Summary: 1,0,0,93aad85bccbd4daf,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:1:2:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1605:1730:1747:1777:1792:1801:2194:2199:2393:2553:2559:2562:2693:3138:3139:3140:3141:3142:3865:3866:3867:3868:3870:3871:3872:3874:4052:4250:4321:4384:4605:5007:6119:6261:6653:7903:7974:8660:8957:9592:10004:10226:11026:11232:11473:11658:11914:12043:12291:12295:12296:12297:12438:12555:12679:12895:12986:13148:13230:13894:14096:14394:21063:21080:21324:21451:21611:21627:21939:21972:21990:30034:30054:30070:30090,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfkycq54i5erdsbtr58n87kuxr9opsn8bjxkyrtsqeu5bbddybuc4rkqa6mgy.1g3xq91u838b55mw63rkaxhpduwdzjy6se4wgor138c1i5orjzosta1m33xtd5n.n-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:23,LUA_SUMMARY:none X-HE-Tag: men17_62113ae2721e X-Filterd-Recvd-Size: 10770 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf09.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:53 +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=RskGYvjuNvSVFj6g0/TxhC/GfOlxapv7tRidhB1Djwg=; b=V4+vkH2k+ifMkZ6HvLI+rBY4sR RIbJBR+VOPDXAvSAm0L37gSH4ZER+HAiGLPEoz3Gd33bV6rFxUN1WKZuhXHxd58mHKFl2qtX18UAr 4MA3urew1HxCakG47h9hWtoYqfdIKnj0JkTkvZbxhC6mdoT2CpMxgo+f+B3an2CeXxEuoquNkkH80 uowLcLgSYxYE56XZOFCYGz1Y3FHSfwAFE4D3WENd2NZrrmFkVRrdnS+A0fPjCytCyHGKJhzcK1wan sS7T7agUK8c9L0Czs1nQv/5SrwHCvxmfGzzm7FXT3qSr+InGm0U/I/9TujD5yiqAHQriBhOklH8B9 kEyOlUmg==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDl-0004sK-Lv; Fri, 16 Oct 2020 16:04:45 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH v3 03/18] fs: Add AOP_UPDATED_PAGE return value Date: Fri, 16 Oct 2020 17:04:28 +0100 Message-Id: <20201016160443.18685-4-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: Allow synchronous ->readpage implementations to execute more efficiently by skipping the re-locking of the page. Signed-off-by: Matthew Wilcox (Oracle) --- Documentation/filesystems/locking.rst | 7 ++++--- Documentation/filesystems/vfs.rst | 21 ++++++++++++++------- fs/buffer.c | 15 +++++++++------ fs/cachefiles/rdwr.c | 8 ++++++++ include/linux/fs.h | 5 +++++ mm/filemap.c | 15 +++++++++++++-- mm/page_io.c | 7 ++++++- mm/readahead.c | 3 ++- 8 files changed, 61 insertions(+), 20 deletions(-) diff --git a/Documentation/filesystems/locking.rst b/Documentation/filesystems/locking.rst index 64f94a18d97e..06a7a8bf2362 100644 --- a/Documentation/filesystems/locking.rst +++ b/Documentation/filesystems/locking.rst @@ -269,7 +269,7 @@ locking rules: ops PageLocked(page) i_rwsem ====================== ======================== ========= writepage: yes, unlocks (see below) -readpage: yes, unlocks +readpage: yes, may unlock writepages: set_page_dirty no readahead: yes, unlocks @@ -294,8 +294,9 @@ swap_deactivate: no ->write_begin(), ->write_end() and ->readpage() may be called from the request handler (/dev/loop). -->readpage() unlocks the page, either synchronously or via I/O -completion. +->readpage() may return AOP_UPDATED_PAGE if the page is now Uptodate +or 0 if the page will be unlocked asynchronously by I/O completion. +If it returns -errno, it should unlock the page. ->readahead() unlocks the pages that I/O is attempted on like ->readpage(). diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/vfs.rst index ca52c82e5bb5..16248c299aaa 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -643,7 +643,7 @@ set_page_dirty to write data into the address_space, and writepage and writepages to writeback data to storage. Adding and removing pages to/from an address_space is protected by the -inode's i_mutex. +inode's i_rwsem held exclusively. When data is written to a page, the PG_Dirty flag should be set. It typically remains set until writepage asks for it to be written. This @@ -757,12 +757,19 @@ cache in your filesystem. The following members are defined: ``readpage`` called by the VM to read a page from backing store. The page - will be Locked when readpage is called, and should be unlocked - and marked uptodate once the read completes. If ->readpage - discovers that it needs to unlock the page for some reason, it - can do so, and then return AOP_TRUNCATED_PAGE. In this case, - the page will be relocated, relocked and if that all succeeds, - ->readpage will be called again. + will be Locked and !Uptodate when readpage is called. Ideally, + the filesystem will bring the page Uptodate and return + AOP_UPDATED_PAGE. If the filesystem encounters an error, it + should unlock the page and return a negative errno without marking + the page Uptodate. It does not need to mark the page as Error. + If the filesystem returns 0, this means the page will be unlocked + asynchronously by I/O completion. The VFS will wait for the + page to be unlocked, so there is no advantage to executing this + operation asynchronously. + + The filesystem can also return AOP_TRUNCATED_PAGE to indicate + that it had to unlock the page to avoid a deadlock. The caller + will re-check the page cache and call ->readpage again. ``writepages`` called by the VM to write out pages associated with the diff --git a/fs/buffer.c b/fs/buffer.c index 50bbc99e3d96..1d5337517dcd 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2856,14 +2856,17 @@ int nobh_truncate_page(struct address_space *mapping, /* Ok, it's mapped. Make sure it's up-to-date */ if (!PageUptodate(page)) { err = mapping->a_ops->readpage(NULL, page); - if (err) { + if (err < 0) { put_page(page); goto out; - } - lock_page(page); - if (!PageUptodate(page)) { - err = -EIO; - goto unlock; + } else if (err == 0) { + lock_page(page); + if (!PageUptodate(page)) { + err = -EIO; + goto unlock; + } + } else { + err = 0; } if (page_has_buffers(page)) goto has_buffers; diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c index 8bda092e60c5..cc4cc535caf5 100644 --- a/fs/cachefiles/rdwr.c +++ b/fs/cachefiles/rdwr.c @@ -122,6 +122,10 @@ static int cachefiles_read_reissue(struct cachefiles_object *object, ret = bmapping->a_ops->readpage(NULL, backpage); if (ret < 0) goto discard; + if (ret == AOP_UPDATED_PAGE) { + ret = 0; + goto unlock_discard; + } } /* but the page may have been read before the monitor was installed, so @@ -285,6 +289,8 @@ static int cachefiles_read_backing_file_one(struct cachefiles_object *object, ret = bmapping->a_ops->readpage(NULL, backpage); if (ret < 0) goto read_error; + if (ret == AOP_UPDATED_PAGE) + unlock_page(backpage); /* set the monitor to transfer the data across */ monitor_backing_page: @@ -523,6 +529,8 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object, ret = bmapping->a_ops->readpage(NULL, backpage); if (ret < 0) goto read_error; + if (ret == AOP_UPDATED_PAGE) + unlock_page(backpage); /* add the netfs page to the pagecache and LRU, and set the * monitor to transfer the data across */ diff --git a/include/linux/fs.h b/include/linux/fs.h index 7519ae003a08..badf80e133fd 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -273,6 +273,10 @@ struct iattr { * reference, it should drop it before retrying. Returned * by readpage(). * + * @AOP_UPDATED_PAGE: The readpage method has brought the page Uptodate + * without releasing the page lock. This is suitable for synchronous + * implementations of readpage. + * * address_space_operation functions return these large constants to indicate * special semantics to the caller. These are much larger than the bytes in a * page to allow for functions that return the number of bytes operated on in a @@ -282,6 +286,7 @@ struct iattr { enum positive_aop_returns { AOP_WRITEPAGE_ACTIVATE = 0x80000, AOP_TRUNCATED_PAGE = 0x80001, + AOP_UPDATED_PAGE = 0x80002, }; #define AOP_FLAG_CONT_EXPAND 0x0001 /* called from cont_expand */ diff --git a/mm/filemap.c b/mm/filemap.c index 1aaea26556cc..95b68ec1f22c 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2254,8 +2254,13 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, * PG_error will be set again if readpage fails. */ ClearPageError(page); - /* Start the actual read. The read will unlock the page. */ + /* Start the actual read. The read may unlock the page. */ error = mapping->a_ops->readpage(filp, page); + if (error == AOP_UPDATED_PAGE) { + unlock_page(page); + error = 0; + goto page_ok; + } if (unlikely(error)) { if (error == AOP_TRUNCATED_PAGE) { @@ -2619,7 +2624,7 @@ vm_fault_t filemap_fault(struct vm_fault *vmf) */ if (unlikely(!PageUptodate(page))) goto page_not_uptodate; - +page_ok: /* * We've made it this far and we had to drop our mmap_lock, now is the * time to return to the upper layer and have it re-find the vma and @@ -2654,6 +2659,8 @@ vm_fault_t filemap_fault(struct vm_fault *vmf) ClearPageError(page); fpin = maybe_unlock_mmap_for_io(vmf, fpin); error = mapping->a_ops->readpage(file, page); + if (error == AOP_UPDATED_PAGE) + goto page_ok; if (!error) { wait_on_page_locked(page); if (!PageUptodate(page)) @@ -2867,6 +2874,10 @@ static struct page *do_read_cache_page(struct address_space *mapping, err = filler(data, page); else err = mapping->a_ops->readpage(data, page); + if (err == AOP_UPDATED_PAGE) { + unlock_page(page); + goto out; + } if (err < 0) { put_page(page); diff --git a/mm/page_io.c b/mm/page_io.c index faf5ccb42946..f141a171d09c 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -376,13 +376,18 @@ static int mapping_readpage(struct file *file, struct address_space *mapping, ._index = page->index, ._nr_pages = 1, }; + int ret; if (!synchronous && mapping->a_ops->readahead) { mapping->a_ops->readahead(&ractl); return 0; } - return mapping->a_ops->readpage(file, page); + ret = mapping->a_ops->readpage(file, page); + if (ret != AOP_UPDATED_PAGE) + return ret; + unlock_page(page); + return 0; } int swap_readpage(struct page *page, bool synchronous) diff --git a/mm/readahead.c b/mm/readahead.c index 3c9a8dd7c56c..f182fa731ab3 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -142,7 +142,8 @@ static void read_pages(struct readahead_control *rac, struct list_head *pages, rac->_nr_pages = 0; } else { while ((page = readahead_page(rac))) { - aops->readpage(rac->file, page); + if (aops->readpage(rac->file, page) == AOP_UPDATED_PAGE) + unlock_page(page); put_page(page); } } From patchwork Fri Oct 16 16:04:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842031 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 20FBB1580 for ; Fri, 16 Oct 2020 16:05:13 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id C19E321655 for ; Fri, 16 Oct 2020 16:05:09 +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="L+qGRwq9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C19E321655 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 E9591940007; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id DD25594000D; Fri, 16 Oct 2020 12:04:53 -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 C9C4E940007; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0100.hostedemail.com [216.40.44.100]) by kanga.kvack.org (Postfix) with ESMTP id 1BBBD94000D for ; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id DB2F83631 for ; Fri, 16 Oct 2020 16:04:51 +0000 (UTC) X-FDA: 77378261982.02.plane82_2f0266e2721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin02.hostedemail.com (Postfix) with ESMTP id BE059100CCA45 for ; Fri, 16 Oct 2020 16:04:51 +0000 (UTC) X-Spam-Summary: 1,0,0,8d89218dbc9f3b4d,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:69:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1541:1711:1730:1747:1777:1792:2194:2199:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:4321:5007:6261:6653:8957:9592:10004:11026:11473:11658:11914:12043:12296:12297:12438:12555:12895:12986:13069:13311:13357:13894:14096:14181:14384:14394:14721:21080:21212:21324:21451:21627:21990:30012:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-62.8.15.100 64.201.201.201;04yrpuboyq5apu5jf4nyr9tb1xhc1ocjswz9z8dac8myyfiec53dc6gxwwyee9b.6nys8datrsbyruzjzwazzx9gbjjrnt3r97r1bkfb8i3dncff36bi4cb8pe15hzc.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:25,LUA_SUMMARY:none X-HE-Tag: plane82_2f0266e2721e X-Filterd-Recvd-Size: 3121 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf36.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:49 +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=eXIZ/2X0EY8JcIBfJAYRGkfxW4dL9sFOoP0NZnrF17k=; b=L+qGRwq93bTXE6spF7zzaJWnYg yU56B8yP3RpbfnQfb9WduyrO2aXz8wf3JXpJoYCLg2GelXRJ53wYcA/LeDMkI5VrtdOOsSW1i4e76 Fzp4no1EbmYxz0TMYJ0Ti3gS0VtN/rYBedprHGLCzxdgMBiI1BE1Gaux0bG+sUBIjGg1qtxSDEFjs T3TKXNtzDhmWzMcuhaMUrOzVc066oLFCErTThPD7XRVEbgMPYro1ONQ2qGxpK80hT3KojTq8VSkHS fNAaN2DwsNIoCA4MwdnNA5ln3RQOlp5PDIXk+QiiGRYbYzhUdePN8sUQbosFRpDD/2M2hs53AbEHD qbw4sXTA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDl-0004sO-Rw; Fri, 16 Oct 2020 16:04:45 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Christoph Hellwig Subject: [PATCH v3 04/18] mm/filemap: Inline wait_on_page_read into its one caller Date: Fri, 16 Oct 2020 17:04:29 +0100 Message-Id: <20201016160443.18685-5-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: Having this code inline helps the function read more easily. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Christoph Hellwig --- mm/filemap.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 95b68ec1f22c..0ef06d515532 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2834,18 +2834,6 @@ EXPORT_SYMBOL(filemap_page_mkwrite); EXPORT_SYMBOL(generic_file_mmap); EXPORT_SYMBOL(generic_file_readonly_mmap); -static struct page *wait_on_page_read(struct page *page) -{ - if (!IS_ERR(page)) { - wait_on_page_locked(page); - if (!PageUptodate(page)) { - put_page(page); - page = ERR_PTR(-EIO); - } - } - return page; -} - static struct page *do_read_cache_page(struct address_space *mapping, pgoff_t index, int (*filler)(void *, struct page *), @@ -2876,7 +2864,10 @@ static struct page *do_read_cache_page(struct address_space *mapping, err = mapping->a_ops->readpage(data, page); if (err == AOP_UPDATED_PAGE) { unlock_page(page); - goto out; + } else if (!err) { + wait_on_page_locked(page); + if (!PageUptodate(page)) + err = -EIO; } if (err < 0) { @@ -2884,9 +2875,6 @@ static struct page *do_read_cache_page(struct address_space *mapping, return ERR_PTR(err); } - page = wait_on_page_read(page); - if (IS_ERR(page)) - return page; goto out; } if (PageUptodate(page)) From patchwork Fri Oct 16 16:04:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11841993 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 8D79661C for ; Fri, 16 Oct 2020 16:04:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 19B7C207BC for ; Fri, 16 Oct 2020 16:04:54 +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="GgPRh7i4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 19B7C207BC 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 2ADEF94000C; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 21117940007; Fri, 16 Oct 2020 12:04:52 -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 0FE4B94000C; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0216.hostedemail.com [216.40.44.216]) by kanga.kvack.org (Postfix) with ESMTP id 70DAC940007 for ; Fri, 16 Oct 2020 12:04:51 -0400 (EDT) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 57E14181AEF1E for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-FDA: 77378261940.07.flesh33_0d04bf72721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin07.hostedemail.com (Postfix) with ESMTP id 3CDD71803F9A8 for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-Spam-Summary: 1,0,0,ed3958feff23fc84,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1431:1437:1515:1534:1540:1711:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:3867:4321:5007:6120:6261:6653:7901:8957:10004:11026:11473:11658:11914:12043:12296:12297:12438:12555:12679:12895:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yf34ib8jrqhk8py5p6fznh4wg7uocwmuwnricegqwjrzqu6p691md8jr9zzqq.9tmgn7dcot65b4gbytyw7uwdoqnirdx3n1e6s5yqrijsot3rhr4i99httcrtncp.h-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:25,LUA_SUMMARY:none X-HE-Tag: flesh33_0d04bf72721e X-Filterd-Recvd-Size: 2605 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf14.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:49 +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=HQZhweg8a+1Qpo+qFNQoqVI2WIjKy37atq+XWcCiXOA=; b=GgPRh7i4pcxQzH2s2TIqMTVaNA p7aJ3YoseJCB9AZRZSNNwE6+93TVYg7niLGp7MOGNw7tVp7QXYl3/bZbGLqd29A/AEKtoaBID8wpJ LHalqyGCk9103wZRfVL+OIWJ1eUTYlYwY0EMyFwYYtaltDcBio2GrepIGNVAacjTKvoTQ9zlqw0hb k+q6/8I0srS9JtJ+YAWcbZ2UJtJyyLGQwqshMv4U+hhREF/UA9qE7qXWjTx83iJ++Vddi4RA5Bj08 P9sGKKuW0ymn9cH1niWT8JY5NLqAGc6FLByWlYhuePbVcnIRu3A3PzLwRSMI+Xmdd/1pJiIUoAvaM ZWjoZHhA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDm-0004sX-3v; Fri, 16 Oct 2020 16:04:46 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Dominique Martinet Subject: [PATCH v3 05/18] 9p: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:30 +0100 Message-Id: <20201016160443.18685-6-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The 9p readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Dominique Martinet --- fs/9p/vfs_addr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c index cce9ace651a2..506ca0ba2ec7 100644 --- a/fs/9p/vfs_addr.c +++ b/fs/9p/vfs_addr.c @@ -65,7 +65,7 @@ static int v9fs_fid_readpage(void *data, struct page *page) SetPageUptodate(page); v9fs_readpage_to_fscache(inode, page); - retval = 0; + return AOP_UPDATED_PAGE; done: unlock_page(page); @@ -280,6 +280,10 @@ static int v9fs_write_begin(struct file *filp, struct address_space *mapping, goto out; retval = v9fs_fid_readpage(v9inode->writeback_fid, page); + if (retval == AOP_UPDATED_PAGE) { + retval = 0; + goto out; + } put_page(page); if (!retval) goto start; From patchwork Fri Oct 16 16:04:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11841991 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 7387E1580 for ; Fri, 16 Oct 2020 16:04:52 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 2294020897 for ; Fri, 16 Oct 2020 16:04:51 +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="f2rbbINq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2294020897 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 E6C18940009; Fri, 16 Oct 2020 12:04:50 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id E1C02940007; Fri, 16 Oct 2020 12:04:50 -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 D3235940009; Fri, 16 Oct 2020 12:04:50 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0031.hostedemail.com [216.40.44.31]) by kanga.kvack.org (Postfix) with ESMTP id 526C9940007 for ; Fri, 16 Oct 2020 12:04:50 -0400 (EDT) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 3B83E8249980 for ; Fri, 16 Oct 2020 16:04:49 +0000 (UTC) X-FDA: 77378261898.20.wren82_15078392721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin20.hostedemail.com (Postfix) with ESMTP id 0F244180C07A3 for ; Fri, 16 Oct 2020 16:04:49 +0000 (UTC) X-Spam-Summary: 1,0,0,3a06ff486d9ba97a,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1539:1567:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3865:3867:5007:6120:6261:6653:7901:8957:10004:11026:11473:11658:11914:12297:12555:12895:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfy8jey6s83u5krauhpjsene7ycypj4ciujnnhcwi91hubqqw4xbzpztzpo1q.nfbazyzo87xy7ma3czspu8ds39sh43df44a65aha1wydrk9aunxt9bm7u7pkdti.n-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:289,LUA_SUMMARY:none X-HE-Tag: wren82_15078392721e X-Filterd-Recvd-Size: 2232 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf03.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:48 +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=Wff0t85oZfmMq4nKnDr8r5OGugvLiUKKANRhHeeeqKg=; b=f2rbbINq9tY88lmCCq22Af5TDd cZ1nNN2c4BNtegmbq99WKwx3DoUMGcgXfJB+SF/e3h0QNdFJv/cbocPC/PBYOk5gHA9z5Nk9icUJ3 H5r8iJuUzEgWoyfdTQg0vC9+cS3Drw4YI5cBOXFkQt/SII5efLywEZmhEeYxCws31Ib11rBaWxyYr GKrnjpRTZ3gf+OtG2l5RoLjhxGtgP+Dd0SOxiGjihhV1kjkux6p3nXPcgR4ulOAGnm6Zzv8vrn0a6 91oiCUcIEpY7GcWk+IHxR063VfHvUMHVmI9bf1xUHZPogeCqyZv6HuWB0DqTl6tY7d7hWx1dE0XEZ me65MjqA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDm-0004se-BW; Fri, 16 Oct 2020 16:04:46 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, David Howells Subject: [PATCH v3 06/18] afs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:31 +0100 Message-Id: <20201016160443.18685-7-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The afs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) --- fs/afs/file.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/afs/file.c b/fs/afs/file.c index 371d1488cc54..4aa2ad3bea6a 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c @@ -367,7 +367,8 @@ int afs_page_filler(void *data, struct page *page) BUG_ON(PageFsCache(page)); } #endif - unlock_page(page); + _leave(" = AOP_UPDATED_PAGE"); + return AOP_UPDATED_PAGE; } _leave(" = 0"); From patchwork Fri Oct 16 16:04:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842027 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 7BC2C17C9 for ; Fri, 16 Oct 2020 16:05:07 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 2B736218AC for ; Fri, 16 Oct 2020 16:05:07 +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="ryk51nkb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B736218AC 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 8A8CB940010; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 60F71940007; Fri, 16 Oct 2020 12:04:53 -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 31EB794000A; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0058.hostedemail.com [216.40.44.58]) by kanga.kvack.org (Postfix) with ESMTP id 7662694000A for ; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 9F744824999B for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-FDA: 77378261940.04.dog46_3614fb92721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin04.hostedemail.com (Postfix) with ESMTP id 7CB23800BAAF for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-Spam-Summary: 1,0,0,628e2164053b063a,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1540:1711:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:3867:4321:5007:6120:6261:6653:7901:7904:10004:11026:11473:11658:11914:12297:12555:12895:12986:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-62.8.15.100 64.201.201.201;04yf1j67zjt7wd6c3633fehk46txdocy6o8ccjg7ywrteypc7zs8sa6c6dei9xo.w7huzxbqt8ccogb4o5u1z1dg7xz59ys361ykseowk6kq65wzufst96xrxkk1q76.y-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:269,LUA_SUMMARY:none X-HE-Tag: dog46_3614fb92721e X-Filterd-Recvd-Size: 2450 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:48 +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=DjEv8CInt3MYIbFFccwff33IuqhKVtai0GAjHHJ41BQ=; b=ryk51nkbiVP/20QOSjU8LYKNch D3PuNSHHPjrUvGPushpNdbD4bliIpUDtJv+akKDXqH0Xy8GzFQ9209dtg3xKcESUSPpxQ6kdrr6/P iWjyDNAWmUiE0NLKaHJBsX8SPbR6V/4hSnXjMESHP4FZ9C+dHPLuPeT+nbrWaSmx3tmzXMyd+6K7I SeUPXtxJkcTK7Zu2dPWxhpp7sN78NkE7o1nQgfRSny2QeZXGFK31GiWqLGByf/YtzDnO5amp14uff 7eettvMERGlcEAavRUHdw1Su0huwcDEJOct5aoA4HTdYh6bQlVNMUmFKeBTatnD2+E5yeaCEuGAZA O7kiJ8Lw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDm-0004sj-Hq; Fri, 16 Oct 2020 16:04:46 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Jeff Layton Subject: [PATCH v3 07/18] ceph: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:32 +0100 Message-Id: <20201016160443.18685-8-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The ceph readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Jeff Layton --- fs/ceph/addr.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 6ea761c84494..b2bf8bf7a312 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -291,10 +291,11 @@ static int ceph_do_readpage(struct file *filp, struct page *page) static int ceph_readpage(struct file *filp, struct page *page) { int r = ceph_do_readpage(filp, page); - if (r != -EINPROGRESS) - unlock_page(page); - else - r = 0; + if (r == -EINPROGRESS) + return 0; + if (r == 0) + return AOP_UPDATED_PAGE; + unlock_page(page); return r; } From patchwork Fri Oct 16 16:04:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842021 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 B1E861580 for ; Fri, 16 Oct 2020 16:05:04 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 504F020874 for ; Fri, 16 Oct 2020 16:05:04 +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="T7s2jwSi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 504F020874 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 6914394000A; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4D670940011; Fri, 16 Oct 2020 12:04:53 -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 2F9BF940007; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0252.hostedemail.com [216.40.44.252]) by kanga.kvack.org (Postfix) with ESMTP id C1B94940007 for ; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 35A2F180AD807 for ; Fri, 16 Oct 2020 16:04:52 +0000 (UTC) X-FDA: 77378262024.14.bells18_2c0f0d12721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin14.hostedemail.com (Postfix) with ESMTP id 129B518229835 for ; Fri, 16 Oct 2020 16:04:52 +0000 (UTC) X-Spam-Summary: 1,0,0,621eb1f2916ac6fa,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1541:1711:1730:1747:1777:1792:2380:2393:2559:2562:2693:3138:3139:3140:3141:3142:3352:3865:3867:3872:4321:5007:6117:6120:6261:6653:7901:7903:10004:11026:11473:11658:11914:12043:12296:12297:12438:12555:12895:12986:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21740:21990:30054:30083,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfqgwjsacearhj6ikujm86u8ueuypzox5sk6zf7c9qi137bbrah1fut6mneoe.gpf3g6sstqy6t4bht67tsxdu8qc9ufy31e4etz1c18817dphhcgkbf5jqutqnog.r-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:24,LUA_SUMMARY:none X-HE-Tag: bells18_2c0f0d12721e X-Filterd-Recvd-Size: 2765 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf26.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:51 +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=7u5VAtMiRg84eQRBFRLzhqfSMq0woXu9gI0XciTFBfo=; b=T7s2jwSip4yAfLX9bZLFVCvA+p 9yK0UJMjNjfRwc4QujkMMQHnD4EpGzf8NY2Q8b1wbfWirWZmOvwuEVdYA2IgWbu3wRLcx2m3NcrJR pgnkENnb6D0U3t6/Jx9QCLSZFR+vCKKo5eE+oB0cPMtkELSbGoDKHuSAWBo6JcZW5ysVxdFhn9CEH AYa2KLvBQKERlJK1blr+zROW+iQmQ1L8zRrD3nXhRlwe1v2cS2cf+1WTivUi2wwlPQmD53sFO+DIP dQMivBQllAq1EF1rwL716HTgW6QpEFcRcWoW+vszPIFo2nsagHG+nay3PBx2N3VPy+mQw0ZBM1/tq HeVQaI6w==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDm-0004st-Qo; Fri, 16 Oct 2020 16:04:46 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Steve French , linux-cifs@vger.kernel.org Subject: [PATCH v3 08/18] cifs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:33 +0100 Message-Id: <20201016160443.18685-9-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The cifs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) --- fs/cifs/file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/cifs/file.c b/fs/cifs/file.c index be46fab4c96d..533b151a9143 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -4537,7 +4537,8 @@ static int cifs_readpage_worker(struct file *file, struct page *page, /* send this page to the cache */ cifs_readpage_to_fscache(file_inode(file), page); - rc = 0; + kunmap(page); + return AOP_UPDATED_PAGE; io_error: kunmap(page); @@ -4677,7 +4678,10 @@ static int cifs_write_begin(struct file *file, struct address_space *mapping, * an error, we don't need to return it. cifs_write_end will * do a sync write instead since PG_uptodate isn't set. */ - cifs_readpage_worker(file, page, &page_start); + int err = cifs_readpage_worker(file, page, &page_start); + + if (err == AOP_UPDATED_PAGE) + goto out; put_page(page); oncethru = 1; goto start; From patchwork Fri Oct 16 16:04:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842035 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 5353517C9 for ; Fri, 16 Oct 2020 16:05:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BE51D207BC for ; Fri, 16 Oct 2020 16:04:58 +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="CdVGkVMa" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BE51D207BC 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 CD14094000E; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B8CEB94000F; Fri, 16 Oct 2020 12:04:52 -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 96660940007; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0150.hostedemail.com [216.40.44.150]) by kanga.kvack.org (Postfix) with ESMTP id D1DC594000B for ; Fri, 16 Oct 2020 12:04:51 -0400 (EDT) Received: from smtpin05.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 157CB1EE6 for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-FDA: 77378261940.05.glove73_1c121e12721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin05.hostedemail.com (Postfix) with ESMTP id EE3A4180002DD for ; Fri, 16 Oct 2020 16:04:49 +0000 (UTC) X-Spam-Summary: 1,0,0,cdb99934f4eda40a,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1540:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3350:3865:3867:4321:5007:6120:6261:6653:7901:8957:10004:11026:11473:11658:11914:12296:12297:12438:12555:12679:12895:12986:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yrm9ehsy33hep6z5p9zpqmddkcnoceaz44ache7z6ehmaa35w6essoxe5qbeu.3axgqu4fp6stojqih1remj9799g3rt6bp6u8kcmfmsk1ohu8qsemp65unsnr4da.n-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:362,LUA_SUMMARY:none X-HE-Tag: glove73_1c121e12721e X-Filterd-Recvd-Size: 2447 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf45.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:48 +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=U62SUaGW7wvOzK2xtP2u7DsjwRF7PHeB8dtYgkbpx0Q=; b=CdVGkVMaoXabyV+hrVSqK0odLg tgot/W/wg6U/L9Bx0gdVcEX7lrcOHYN3Frq5MaulMpsGEaXsKPKLzveb65eQmIPo5V39m0CIeX7fj s1KIYMFkLJ7/yAlbPDcQ/TSRJEbMfs6sIuIwL4r8BemNcj6mk1DWLKkiMyn0ph6M6uDQsz7HCFPxC BnckCaWY79K4nud1xekf6IU6CP2/DpYTUR9B+cKhsQ5Y7pAMlK7E9OMEOV/fEDlgk9F0EE7dOhEA2 CApuNcKRL6y9+MNUF+7xe5EU8gQ7VCHJREN5Fp4Bphfd5A0rmXo31I8cPFG7NAjbSoHO8k0A3p6b8 eOvHL48Q==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDn-0004t1-8n; Fri, 16 Oct 2020 16:04:47 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Nicolas Pitre Subject: [PATCH v3 09/18] cramfs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:34 +0100 Message-Id: <20201016160443.18685-10-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The cramfs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) --- fs/cramfs/inode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index 912308600d39..7a642146c074 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -916,15 +916,14 @@ static int cramfs_readpage(struct file *file, struct page *page) flush_dcache_page(page); kunmap(page); SetPageUptodate(page); - unlock_page(page); - return 0; + return AOP_UPDATED_PAGE; err: kunmap(page); ClearPageUptodate(page); SetPageError(page); unlock_page(page); - return 0; + return -EIO; } static const struct address_space_operations cramfs_aops = { From patchwork Fri Oct 16 16:04:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842103 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 4965461C for ; Fri, 16 Oct 2020 16:40:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9D74820897 for ; Fri, 16 Oct 2020 16:40:57 +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="lzjKWulL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D74820897 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 978AC6B0062; Fri, 16 Oct 2020 12:40:56 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 929A06B0068; Fri, 16 Oct 2020 12:40:56 -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 83F926B0071; Fri, 16 Oct 2020 12:40:56 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0033.hostedemail.com [216.40.44.33]) by kanga.kvack.org (Postfix) with ESMTP id DA5416B0062 for ; Fri, 16 Oct 2020 12:40:55 -0400 (EDT) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id C97331EE6 for ; Fri, 16 Oct 2020 16:40:54 +0000 (UTC) X-FDA: 77378352828.01.page67_2901c462721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin01.hostedemail.com (Postfix) with ESMTP id D4BE410059783 for ; Fri, 16 Oct 2020 16:04:49 +0000 (UTC) X-Spam-Summary: 1,0,0,89e52db875dfbd8d,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1540:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3351:3865:3867:4321:5007:6120:6261:6653:7901:8957:10004:11026:11232:11473:11658:11914:12297:12555:12895:12986:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-62.8.15.100 64.201.201.201;04y898yh6w7oeo78st4dycacscd7yocz516m41ghu7ru3rha6juasuthaetym8k.s1us165smpwyjf7znhoog6wkirkhni46to9at46g7fgm98dmwfofun7bxr9ew36.4-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:25,LUA_SUMMARY:none X-HE-Tag: page67_2901c462721e X-Filterd-Recvd-Size: 2563 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:49 +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=jmv1iA6ONHdhBCtewTigT8o0CWZcxoZXOX5KqmVgnTU=; b=lzjKWulLpFYNA4pbkUUZfQIdxX m3a2Hxp01cudH9ksgJVuUgaKx6tetfi7GLekkQwC/jQBg02Wtj6lX4FUy222YUx2NyioE++RCtnXI 7o4m9SHp1O4k9EmeJqjhFabarRc1sVTDFRlu7C3BG1SYEAoVRZSPAnZHDXYX8HbKxbWyT40lnn0Ju XgKdxGfrfvfeV6m9P99ycICS693RVAdkBSWjJVgfZw9NtODmHDgQzSvhTxKmmWMUidOUlloFg3Bfd z3w3s4pcSEEpypJkw5ct+oWM7RG7//svzkszYQgJ8CtxyaxT0HrRYjWU9Qw9rQk1Vu9FQ7UFCIVBN NGsJmxvw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDn-0004tE-IG; Fri, 16 Oct 2020 16:04:47 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Tyler Hicks , ecryptfs@vger.kernel.org Subject: [PATCH v3 10/18] ecryptfs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:35 +0100 Message-Id: <20201016160443.18685-11-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The ecryptfs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) --- fs/ecryptfs/mmap.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c index 019572c6b39a..dee35181d789 100644 --- a/fs/ecryptfs/mmap.c +++ b/fs/ecryptfs/mmap.c @@ -219,12 +219,13 @@ static int ecryptfs_readpage(struct file *file, struct page *page) } } out: - if (rc) - ClearPageUptodate(page); - else - SetPageUptodate(page); - ecryptfs_printk(KERN_DEBUG, "Unlocking page with index = [0x%.16lx]\n", + ecryptfs_printk(KERN_DEBUG, "Returning page with index = [0x%.16lx]\n", page->index); + if (!rc) { + SetPageUptodate(page); + return AOP_UPDATED_PAGE; + } + ClearPageUptodate(page); unlock_page(page); return rc; } From patchwork Fri Oct 16 16:04:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842083 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 CCEFE1744 for ; Fri, 16 Oct 2020 16:20:48 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7D2422084C for ; Fri, 16 Oct 2020 16:20:48 +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="kYJP+mEh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D2422084C 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 9AE93940013; Fri, 16 Oct 2020 12:20:47 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 936F3940012; Fri, 16 Oct 2020 12:20:47 -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 7FFD3940013; Fri, 16 Oct 2020 12:20:47 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0248.hostedemail.com [216.40.44.248]) by kanga.kvack.org (Postfix) with ESMTP id 4CAC1940012 for ; Fri, 16 Oct 2020 12:20:47 -0400 (EDT) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id B69F9181AEF1E for ; Fri, 16 Oct 2020 16:20:46 +0000 (UTC) X-FDA: 77378302092.20.foot16_3a01bd02721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin20.hostedemail.com (Postfix) with ESMTP id 9855A180C07A3 for ; Fri, 16 Oct 2020 16:20:46 +0000 (UTC) X-Spam-Summary: 1,0,0,3e3456525788162f,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973: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:3867:5007:6120:6261:6653:7901:8957:9592:10004:11026:11473:11658:11914:12043:12296:12297:12438:12555:12679:12895:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21433:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04y8gzf8kr8uyyd13sjmq7khybqhbypt3t1bkcnzxj741dxagf4ccegfn7sksxf.ybtz3p979oz3z1eyhtxukqoomh47ey431hu78zy564j74mamkks3e4nwj47szcw.r-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:23,LUA_SUMMARY:none X-HE-Tag: foot16_3a01bd02721e X-Filterd-Recvd-Size: 2829 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:46 +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=s32aG3TT8gSwa4wk3wTFOPbSLlkdVuiNeRF4/gWWj4Y=; b=kYJP+mEhXaySepAsFUmQIeV8kp kGNml2aZBoFVfYFfCNqhW0+z3COGlN3stBsKtQqVq9/5NKsLty62Y4PflaVvmkdPiPCL6hHYA6z2t QW/kxIDecHDrFxAvqwxMvW8c0jtOzOyuSeMlScK5lsI0ctJ2iquLYZ5m0knTCC6n7d6c9w1HPnzzS EWFlHJCejUJ4jKeDxyOsGwV4aj3ahhL/15+qsjkxyjzhfSwG+M9Zo4kuq4eoUO1jtFVKWFi0UUdtp XsI+4cusgzvSla2AGVf883MwzMe571jgIv15eSN4IvMbqSE+NAFhU5O2owBc+at6Ggsg2ZdD6f5so kcnLkisw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDn-0004tT-S2; Fri, 16 Oct 2020 16:04:47 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, "Theodore Ts'o" , Andreas Dilger , linux-ext4@vger.kernel.org Subject: [PATCH v3 11/18] ext4: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:36 +0100 Message-Id: <20201016160443.18685-12-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The ext4 inline data readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Theodore Ts'o --- fs/ext4/inline.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 75c97bca0815..2a489243e4de 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -490,7 +490,8 @@ static int ext4_read_inline_page(struct inode *inode, struct page *page) zero_user_segment(page, len, PAGE_SIZE); SetPageUptodate(page); brelse(iloc.bh); - + if (ret >= 0) + return AOP_UPDATED_PAGE; out: return ret; } @@ -514,12 +515,14 @@ int ext4_readpage_inline(struct inode *inode, struct page *page) else if (!PageUptodate(page)) { zero_user_segment(page, 0, PAGE_SIZE); SetPageUptodate(page); + ret = AOP_UPDATED_PAGE; } up_read(&EXT4_I(inode)->xattr_sem); - unlock_page(page); - return ret >= 0 ? 0 : ret; + if (ret < 0) + unlock_page(page); + return ret; } static int ext4_convert_inline_data_to_extent(struct address_space *mapping, From patchwork Fri Oct 16 16:04:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842015 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 D342D1580 for ; Fri, 16 Oct 2020 16:05:03 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 779B920897 for ; Fri, 16 Oct 2020 16:04:56 +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="MI6xY9bD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 779B920897 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 96D9194000B; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 9173994000E; Fri, 16 Oct 2020 12:04:52 -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 6CF2D940007; Fri, 16 Oct 2020 12:04:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0027.hostedemail.com [216.40.44.27]) by kanga.kvack.org (Postfix) with ESMTP id A156C94000A for ; Fri, 16 Oct 2020 12:04:51 -0400 (EDT) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id C52C1180AD811 for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-FDA: 77378261940.23.alley14_410e1202721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin23.hostedemail.com (Postfix) with ESMTP id A2FB837604 for ; Fri, 16 Oct 2020 16:04:50 +0000 (UTC) X-Spam-Summary: 1,0,0,e967e7d09bf0884f,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:69:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1515:1534:1541:1711:1730:1747:1777:1792:1981:2194:2198:2199:2200:2393:2559:2562:3138:3139:3140:3141:3142:3353:3865:3867:4321:4384:5007:6121:6261:6653:7875:8957:10004:11026:11473:11658:11914:12043:12296:12297:12438:12555:12895:12986:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04y8xcukre9y49rhi6c4udoxedbsnycy413idstmjaxnmgf5wq1aw5em7yifqjn.futonrqozscccgcu3npakw5f61uaro8p6tesc6993insmc197dh3k5rmt5jqjk7.h-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:24,LUA_SUMMARY:none X-HE-Tag: alley14_410e1202721e X-Filterd-Recvd-Size: 3608 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf10.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:50 +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=VHGCzY+zyCWWjVcv6siBV92jVoQcsM9E4a8vC6aIBTc=; b=MI6xY9bDRm+D4tdW1gmmyPtkcK RxvvUnh9Tc7U/OoRmlYjW/gxKSNkE9t137Y7XbY/fEoRPlxlopzS8BRAktfMv6nXePSWuEszBYVQl Ps2w8TlSiQB+NjcAIo2VDu3SlwN4089i4UQBsLPBjiRQsFk78JrgvGt0m8omZ0geDkX3JodVJ3xuJ suvJFve0LNxCQv6/b6hLwQI3poM4A+eGkBvRg74cSRHcRcKA/ASmsdTO+0ZcGApLKfVlgb6HEQDph LJ/x+/g6Qmomcuu6JYmLq7YadbgFTds/JhTSiWQ8oeCwxEdxx62PFGCRkqZQHukcblzMp8wKssjK8 dE2EBSIw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDo-0004tc-4W; Fri, 16 Oct 2020 16:04:48 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, "Theodore Ts'o" , Andreas Dilger , linux-ext4@vger.kernel.org Subject: [PATCH v3 12/18] ext4: Return error from ext4_readpage Date: Fri, 16 Oct 2020 17:04:37 +0100 Message-Id: <20201016160443.18685-13-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The error returned from ext4_map_blocks() was being discarded, leading to the generic -EIO being returned to userspace. Now ext4 can return more precise errors. Signed-off-by: Matthew Wilcox (Oracle) --- fs/ext4/readpage.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index f014c5e473a9..00a024f3a954 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c @@ -237,7 +237,7 @@ int ext4_mpage_readpages(struct inode *inode, sector_t blocks[MAX_BUF_PER_PAGE]; unsigned page_block; struct block_device *bdev = inode->i_sb->s_bdev; - int length; + int length, err = 0; unsigned relative_block = 0; struct ext4_map_blocks map; unsigned int nr_pages = rac ? readahead_count(rac) : 1; @@ -301,14 +301,9 @@ int ext4_mpage_readpages(struct inode *inode, map.m_lblk = block_in_file; map.m_len = last_block - block_in_file; - if (ext4_map_blocks(NULL, inode, &map, 0) < 0) { - set_error_page: - SetPageError(page); - zero_user_segment(page, 0, - PAGE_SIZE); - unlock_page(page); - goto next_page; - } + err = ext4_map_blocks(NULL, inode, &map, 0); + if (err < 0) + goto err; } if ((map.m_flags & EXT4_MAP_MAPPED) == 0) { fully_mapped = 0; @@ -395,6 +390,15 @@ int ext4_mpage_readpages(struct inode *inode, } else last_block_in_bio = blocks[blocks_per_page - 1]; goto next_page; + set_error_page: + err = -EIO; + err: + if (rac) { + SetPageError(page); + zero_user_segment(page, 0, PAGE_SIZE); + } + unlock_page(page); + goto next_page; confused: if (bio) { submit_bio(bio); @@ -410,7 +414,7 @@ int ext4_mpage_readpages(struct inode *inode, } if (bio) submit_bio(bio); - return 0; + return err; } int __init ext4_init_post_read_processing(void) From patchwork Fri Oct 16 16:04:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842069 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 ADBC316BC for ; Fri, 16 Oct 2020 16:20:21 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 347AD2084C for ; Fri, 16 Oct 2020 16:20:20 +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="VKzvsqrA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 347AD2084C 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 F2D45940009; Fri, 16 Oct 2020 12:20:19 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EB67C940007; Fri, 16 Oct 2020 12:20:19 -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 D5723940009; Fri, 16 Oct 2020 12:20:19 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0068.hostedemail.com [216.40.44.68]) by kanga.kvack.org (Postfix) with ESMTP id 3869D940007 for ; Fri, 16 Oct 2020 12:20:19 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 092EF1EE6 for ; Fri, 16 Oct 2020 16:20:17 +0000 (UTC) X-FDA: 77378300874.16.day59_0f11b862721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin16.hostedemail.com (Postfix) with ESMTP id D51CD10226C1F for ; Fri, 16 Oct 2020 16:20:16 +0000 (UTC) X-Spam-Summary: 1,0,0,94c7b40e15e3f905,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1539:1567:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3865:3867:4321:5007:6120:6261:6653:7901:10004:11026:11473:11658:11914:12297:12438:12555:12679:12895:12986:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yr89quqbiemx4nphoqpraj6oqf8optx7hyom3iyzb377kj81kbqizsxzjpbkb.tkcorajmukjfwbxyf8iqc8pbfy9fwmph37df773an5nj9b34gwgok1myi8poe16.c-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:25,LUA_SUMMARY:none X-HE-Tag: day59_0f11b862721e X-Filterd-Recvd-Size: 2236 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf30.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:14 +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=8Z59nl1ynYz7T8ZQQZFooEYzqOOLn6C4o6AlvTemzR0=; b=VKzvsqrAbJg0tQ9ROwsB31xWNf qgxaR8fKiaD1Wkm330KV7rVJway6sxpGg9dVl+3mcRIU5minylJtmi4maTxqaRPSujiVUMdTrAJ4l GfP9KVWBMVU+mbH2hZeCeI1XY7jSV0BxCQewFEY9Yce6fLX/Oi+UtM/P9qED3nv3n+34rMWn0dye2 SF1bqMapNAJf1XSzZ0iz9Qe0huNcFIk8MDeT7QlspqB+WOxSuO58c8CvcfZr5zfnw+kfg97ku9thn k8i4ct4Uscjp2Cp8hlpz4V3s0OxnweF+G48RAC2ipPEgFWrs5izVEhlZHgi1SLtsmmjAOYAESHvC5 e775gLhA==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDo-0004tj-MX; Fri, 16 Oct 2020 16:04:48 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Miklos Szeredi Subject: [PATCH v3 13/18] fuse: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:38 +0100 Message-Id: <20201016160443.18685-14-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The fuse readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Miklos Szeredi --- fs/fuse/file.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 6611ef3269a8..7aa5626bc582 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -850,6 +850,8 @@ static int fuse_readpage(struct file *file, struct page *page) err = fuse_do_readpage(file, page); fuse_invalidate_atime(inode); + if (!err) + return AOP_UPDATED_PAGE; out: unlock_page(page); return err; From patchwork Fri Oct 16 16:04:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842033 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 2622961C for ; Fri, 16 Oct 2020 16:05:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id A53C0216C4 for ; Fri, 16 Oct 2020 16:05: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="K7eCJ07R" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A53C0216C4 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 6F33394000D; Fri, 16 Oct 2020 12:04:54 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 67FE4940011; Fri, 16 Oct 2020 12:04:54 -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 47F5894000D; Fri, 16 Oct 2020 12:04:54 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0249.hostedemail.com [216.40.44.249]) by kanga.kvack.org (Postfix) with ESMTP id 94550940011 for ; Fri, 16 Oct 2020 12:04:53 -0400 (EDT) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 945093632 for ; Fri, 16 Oct 2020 16:04:52 +0000 (UTC) X-FDA: 77378262024.10.play04_3f1086a2721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin10.hostedemail.com (Postfix) with ESMTP id 6F34816A0B9 for ; Fri, 16 Oct 2020 16:04:52 +0000 (UTC) X-Spam-Summary: 1,0,0,38085a3aa937573f,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1539:1568:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3865:3867:5007:6120:6261:6653:7901:10004:11026:11473:11658:11914:12297:12555:12679:12895:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-62.8.15.100 64.201.201.201;04y8ra55wakffs5t6ak7iftypbepeocykfpb3y877tc4rt85y91txu3r9hzyxr3.ybx3h55boguddpfrp7om8opa5txtr7o5iiw9kt4sjbcpetkamb6ss3umpaxx89k.o-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:25,LUA_SUMMARY:none X-HE-Tag: play04_3f1086a2721e X-Filterd-Recvd-Size: 2309 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf32.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:04:52 +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=GW1YniPzUpda1PIsi2+AeQMOnKxd544xKFcJ+bcv5fM=; b=K7eCJ07RGw8arkwgdNQlSnFq2d h58I6X6KM/kN3gsXkDv8ux5v0KW2AdOMDbxEYqWMRa2akXqD1y7uxOqSSE3mbOQiQP5XubA1bTI9d 5QhNLeLpvS5ZSpLhxDD6q7m+bunICgdybQ5RkJLfRivaOkc7VsVkKt579lLY/VLYfLufn1SXfuODI MpDLjJQF6BqojsFDzeUzHOKrttAlZTfqm4uY5ds92AkkILMEcF0HDAE95ByBWgPnyVSek8g10QYfu BRkDeEIxHLIOFAT/tp5BZU/4KHfxkHkOOn9rCVq0R8OwtkBguJR8VN07wr++Djct1xBbqq68FQVQZ Ru/VSt/A==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDo-0004tr-WB; Fri, 16 Oct 2020 16:04:49 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Richard Weinberger Subject: [PATCH v3 14/18] hostfs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:39 +0100 Message-Id: <20201016160443.18685-15-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The hostfs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Richard Weinberger --- fs/hostfs/hostfs_kern.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index c070c0d8e3e9..c49221c09c4b 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -455,6 +455,8 @@ static int hostfs_readpage(struct file *file, struct page *page) out: flush_dcache_page(page); kunmap(page); + if (!ret) + return AOP_UPDATED_PAGE; unlock_page(page); return ret; } From patchwork Fri Oct 16 16:04:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842081 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 311F016BC for ; Fri, 16 Oct 2020 16:20:45 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id CA27620874 for ; Fri, 16 Oct 2020 16:20:29 +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="AiN8O30n" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CA27620874 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 E938C94000F; Fri, 16 Oct 2020 12:20:27 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id DF980940007; Fri, 16 Oct 2020 12:20:27 -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 BFAA494000F; Fri, 16 Oct 2020 12:20:27 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0147.hostedemail.com [216.40.44.147]) by kanga.kvack.org (Postfix) with ESMTP id 82378940007 for ; Fri, 16 Oct 2020 12:20:27 -0400 (EDT) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 0413E180AD807 for ; Fri, 16 Oct 2020 16:20:27 +0000 (UTC) X-FDA: 77378301294.18.eye85_2103a962721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin18.hostedemail.com (Postfix) with ESMTP id C5835102663A0 for ; Fri, 16 Oct 2020 16:20:26 +0000 (UTC) X-Spam-Summary: 1,0,0,3b2ace77a288f22c,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1540:1711:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3352:3865:3867:4321:5007:6120:6261:6653:7901:9592:10004:11026:11473:11658:11914:12043:12297:12438:12555:12895:12986:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfis7shyssipz7gmaz9eyrdhsc4ypw5igdixyiwxa337xtoi3bnfgncahgayj.q781ug6skixiax8qkrjmxfxchqrao68pmsco4utrxscuskir479yrnaohe19ota.c-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:24,LUA_SUMMARY:none X-HE-Tag: eye85_2103a962721e X-Filterd-Recvd-Size: 2574 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf37.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:26 +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=RIb1gQ+A64FbhPeJkfhHPdkd0Jjt6Z+sspMIve+fcDU=; b=AiN8O30nX1Xh94dtQLONe6ZbPo EfL5BK99q8txR6km8OOf0FAUJaPZNALukDb1OsBhAbGCPKtvSCFbE2O8X2iZcdWepXLAGJGeTqs9b rnHZ2y8XFjHk4ldssT7Dindm6f8kCforWbww/iJKSQ+jYo8FY4U1Y0edmInRqBRAl1n82/vBWLrD3 Elxb5/ogPNTKM5bIbYPr0IbxVTvmWqiuUqej6n0Z2LopNSa/6mudZNaEJj7HePZ1cHvDvJlz/I2/h sk8sZZoCSGAwDOEqiHgBFYfS/Wav2fl4DO478/rlJWDjnqQChnTnzUlt+RRFkauVkOnOw7r6JKcLw Jsj1vOLw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDq-0004u3-4N; Fri, 16 Oct 2020 16:04:50 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Richard Weinberger Subject: [PATCH v3 15/18] jffs2: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:40 +0100 Message-Id: <20201016160443.18685-16-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The jffs2 readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Richard Weinberger --- fs/jffs2/file.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index f8fb89b10227..959a74027041 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -116,15 +116,17 @@ int jffs2_do_readpage_unlock(void *data, struct page *pg) return ret; } - static int jffs2_readpage (struct file *filp, struct page *pg) { struct jffs2_inode_info *f = JFFS2_INODE_INFO(pg->mapping->host); int ret; mutex_lock(&f->sem); - ret = jffs2_do_readpage_unlock(pg->mapping->host, pg); + ret = jffs2_do_readpage_nolock(pg->mapping->host, pg); mutex_unlock(&f->sem); + if (!ret) + return AOP_UPDATED_PAGE; + unlock_page(pg); return ret; } From patchwork Fri Oct 16 16:04:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842077 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 AD00316BC for ; Fri, 16 Oct 2020 16:20:35 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 37C2020848 for ; Fri, 16 Oct 2020 16:20:32 +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="csJYYLIO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 37C2020848 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 A0470940011; Fri, 16 Oct 2020 12:20:30 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 96AFA940007; Fri, 16 Oct 2020 12:20:30 -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 7FFC1940011; Fri, 16 Oct 2020 12:20:30 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0166.hostedemail.com [216.40.44.166]) by kanga.kvack.org (Postfix) with ESMTP id 713D3940007 for ; Fri, 16 Oct 2020 12:20:29 -0400 (EDT) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 69961181AEF1E for ; Fri, 16 Oct 2020 16:20:28 +0000 (UTC) X-FDA: 77378301336.18.tray90_370ec712721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin18.hostedemail.com (Postfix) with ESMTP id 4CEDB10263C33 for ; Fri, 16 Oct 2020 16:20:28 +0000 (UTC) X-Spam-Summary: 1,0,0,5583ec506e34037c,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973: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:3867:4321:5007:6120:6261:6653:7901:10004:11026:11473:11658:11914:12296:12297:12555:12895:12986:13069:13161:13229:13311:13357:13894:14096:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfzt5uyezbmximnupuu8z3cgp7iocbdqyukpqsdzaqfp1gwhdp1mghu8m3gks.mwgk6sm3ae9ab4gzdau4ut3me9r4zqt6qg5f44zmfxz1cz8ufw3d3xfot5jy85a.c-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:23,LUA_SUMMARY:none X-HE-Tag: tray90_370ec712721e X-Filterd-Recvd-Size: 2760 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf21.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:27 +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=qnANyeE8BGUfs9EI0mAgvyYgGmWNNC+tzF64JAGclAM=; b=csJYYLIOVEwkliWcozQ7ogs4sh QSuac3y4vHb9JfYTBZAhW7/NBRvNtRrIY8Emvd7BBAfCIzPkhlmKFPqPMTVyo5g5qLVvhUIgxZiec D5WZBiSDHiml2zCO6YmlZ8CkegmEQKw53mkR2Yfmk6x0M2ivvIXql5O5CeUB8OFrq+OFa5UAeklIW 34ys1wfwJ++GzNVkHMSmBh5LkvNZrhgtE5N6cp5D5IDfNf+EPxxBdY+cuWzUxbAgOCuav4u4oRqLZ NAEuf/Pui96KlNHIrYE51mNLygl92xYSXZh019zNmgflaOuei7W2UHTfup3ga3AJssqgjUdgyLzsF kMdBjuPQ==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDq-0004uD-RY; Fri, 16 Oct 2020 16:04:51 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Richard Weinberger Subject: [PATCH v3 16/18] ubifs: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:41 +0100 Message-Id: <20201016160443.18685-17-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The ubifs readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Richard Weinberger --- fs/ubifs/file.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index b77d1637bbbc..82633509c45e 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -772,7 +772,6 @@ static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu, if (err) goto out_warn; - unlock_page(page1); ret = 1; isize = i_size_read(inode); @@ -892,11 +891,16 @@ static int ubifs_bulk_read(struct page *page) static int ubifs_readpage(struct file *file, struct page *page) { - if (ubifs_bulk_read(page)) - return 0; - do_readpage(page); - unlock_page(page); - return 0; + int err; + + err = ubifs_bulk_read(page); + if (err == 0) + err = do_readpage(page); + if (err < 0) { + unlock_page(page); + return err; + } + return AOP_UPDATED_PAGE; } static int do_writepage(struct page *page, int len) From patchwork Fri Oct 16 16:04:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842071 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 71CED16BC for ; Fri, 16 Oct 2020 16:20:23 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1DDE8207BC for ; Fri, 16 Oct 2020 16:20:23 +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="ttpJPHVl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1DDE8207BC 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 8C87994000C; Fri, 16 Oct 2020 12:20:21 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 84E71940007; Fri, 16 Oct 2020 12:20:21 -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 7406C94000C; Fri, 16 Oct 2020 12:20:21 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0067.hostedemail.com [216.40.44.67]) by kanga.kvack.org (Postfix) with ESMTP id 3E526940007 for ; Fri, 16 Oct 2020 12:20:21 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 97767180AD807 for ; Fri, 16 Oct 2020 16:20:20 +0000 (UTC) X-FDA: 77378301000.28.color33_560b4e12721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin28.hostedemail.com (Postfix) with ESMTP id 7AB3D6C13 for ; Fri, 16 Oct 2020 16:20:20 +0000 (UTC) X-Spam-Summary: 1,0,0,4cb80861af7b6c1a,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1539:1568:1711:1714:1730:1747:1777:1792:2393:2553:2559:2562:3138:3139:3140:3141:3142:3865:3867:4321:5007:6120:6261:6653:7901:8957:10004:11026:11473:11658:11914:12297:12438:12555:12895:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054:30090,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfehfhs5zcdehrqcpkfj7sn7j4rocoxmec3t6wqojo6kaktbz5dbobwkfiwwn.38g1751dz694tsghnmdu81ei8aq5expc6e9fc8iap4zq96y8jh7jqfxg1ib6xom.n-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:24,LUA_SUMMARY:none X-HE-Tag: color33_560b4e12721e X-Filterd-Recvd-Size: 2321 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf43.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:20 +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=SoeUdKTgaEeumdsHlwEayshKcw/8MedETPawI1HuSQI=; b=ttpJPHVlwPcHBv8GebSCBxmnTN FgDC+gvxcb4jjRfWafVrRUlszkL3p2ZH/wDyiMXLAxROoLSOd3qXSDvluAjKtLxa3CKjnHS7JoucY FS2gH4JDqyxK2M7G65tJClc/4bFQOpPeiqdDzmmpASQ9H9t9ey90G2x5KUTHdCBIbT6DFv/1Xniyg qA+GkAe6/672Av6nUceAbFncdGTzkZ3GFOCZpeFH6ssnvByVXDBLy7pmew02Qq27SfRdvip7T/Yqr NARqnczlDAHM6hQYfgeMZRzphYz7MvMCc/a7HJ3fYZChkY9O4dt/L0a5ypr/VJ8f779g1LCJv7Kha emZS026w==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDs-0004uV-HZ; Fri, 16 Oct 2020 16:04:52 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Jan Kara Subject: [PATCH v3 17/18] udf: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:42 +0100 Message-Id: <20201016160443.18685-18-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The udf inline data readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Jan Kara --- fs/udf/file.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/udf/file.c b/fs/udf/file.c index 628941a6b79a..52bbe92d7c43 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -61,9 +61,8 @@ static int udf_adinicb_readpage(struct file *file, struct page *page) { BUG_ON(!PageLocked(page)); __udf_adinicb_readpage(page); - unlock_page(page); - return 0; + return AOP_UPDATED_PAGE; } static int udf_adinicb_writepage(struct page *page, From patchwork Fri Oct 16 16:04:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11842079 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 224F71744 for ; Fri, 16 Oct 2020 16:20:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 797B72084C for ; Fri, 16 Oct 2020 16:20:27 +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="qgdML7Eu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 797B72084C 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 9B04494000E; Fri, 16 Oct 2020 12:20:24 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 941C9940007; Fri, 16 Oct 2020 12:20:24 -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 790B594000E; Fri, 16 Oct 2020 12:20:24 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0035.hostedemail.com [216.40.44.35]) by kanga.kvack.org (Postfix) with ESMTP id 43D55940007 for ; Fri, 16 Oct 2020 12:20:24 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 4C9F1362B for ; Fri, 16 Oct 2020 16:20:23 +0000 (UTC) X-FDA: 77378301126.21.patch53_40172c92721e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin21.hostedemail.com (Postfix) with ESMTP id 22E00180442C0 for ; Fri, 16 Oct 2020 16:20:23 +0000 (UTC) X-Spam-Summary: 1,0,0,0a3840f92174a31f,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1311:1314:1345:1359:1437:1515:1534:1539:1567:1711:1714:1730:1747:1777:1792:2393:2559:2562:3138:3139:3140:3141:3142:3865:3867:5007:6120:6261:6653:7901:10004:11026:11473:11658:11914:12297:12555:12895:13069:13161:13229:13311:13357:13894:14181:14384:14394:14721:21080:21451:21627:21990:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04yfoiw9ocsotbb1n8amob49x5wgayct9q3u5jkxyc1zwanrwrxw39zbr9reoop.djysjeeubmg4nft67igrpjkkxqdqta7bmaid53m6tmoep7pumq14zj4hdnr3d9j.c-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:24,LUA_SUMMARY:none X-HE-Tag: patch53_40172c92721e X-Filterd-Recvd-Size: 2211 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf35.hostedemail.com (Postfix) with ESMTP for ; Fri, 16 Oct 2020 16:20:22 +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=7bp7tBDREj0/quRwoGKFhcM4IA6X+ak+6znUWRbIy7w=; b=qgdML7Eu0svzD9aZEAF3t+N+Hl WhJ378LctHaJ2RpvavXxT9nHM/zbtJnZoksNdYM4h7jg713eWgZGak3vbcg1/QvZkZIpD9TEvZZxh Eb6vMVI5dQhtNO/jFneRGv7v/P72Fr5D5IhyPDLlP6LaSnbLphK93OgTwSOjy8mbZV/ihaYN6oGVb UHxuh7O8lrgpZOtQbTDJcREsSgpDewF0WmrSWUJpc3g7OStb+rmjn+B31ZMREHgD/mbLbckdXCvLc ef6ebyetdHJQUT8P5idONrecE1bek7FJm3SdogVKgcMF44Ne8fBvksCqGphIwZGuMuuacWl6PGRvJ rejNztAw==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTSDt-0004ur-4r; Fri, 16 Oct 2020 16:04:53 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Hans de Goede Subject: [PATCH v3 18/18] vboxsf: Tell the VFS that readpage was synchronous Date: Fri, 16 Oct 2020 17:04:43 +0100 Message-Id: <20201016160443.18685-19-willy@infradead.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20201016160443.18685-1-willy@infradead.org> References: <20201016160443.18685-1-willy@infradead.org> MIME-Version: 1.0 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: The vboxsf inline data readpage implementation was already synchronous, so use AOP_UPDATED_PAGE to avoid cycling the page lock. Signed-off-by: Matthew Wilcox (Oracle) --- fs/vboxsf/file.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c index c4ab5996d97a..c2a144e5cb5a 100644 --- a/fs/vboxsf/file.c +++ b/fs/vboxsf/file.c @@ -228,6 +228,8 @@ static int vboxsf_readpage(struct file *file, struct page *page) } kunmap(page); + if (!err) + return AOP_UPDATED_PAGE; unlock_page(page); return err; }