Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965250AbdDSPOt (ORCPT ); Wed, 19 Apr 2017 11:14:49 -0400 Received: from mail-db5eur01on0092.outbound.protection.outlook.com ([104.47.2.92]:54920 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964888AbdDSPOj (ORCPT ); Wed, 19 Apr 2017 11:14:39 -0400 Authentication-Results: kvack.org; dkim=none (message not signed) header.d=none;kvack.org; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH 1/4] fs: fix data invalidation in the cleancache during direct IO To: Andrew Morton References: <20170414140753.16108-1-aryabinin@virtuozzo.com> <20170414140753.16108-2-aryabinin@virtuozzo.com> <20170418154647.9583bfa06705c614a2640a15@linux-foundation.org> CC: Alexander Viro , , Konrad Rzeszutek Wilk , Eric Van Hensbergen , Ron Minnich , Latchesar Ionkov , Steve French , Matthew Wilcox , Ross Zwisler , Trond Myklebust , Anna Schumaker , Jan Kara , Jens Axboe , Johannes Weiner , Alexey Kuznetsov , Christoph Hellwig , , , , , From: Andrey Ryabinin Message-ID: <64a3f71f-11af-2ab3-c2b5-8e26e03b0ceb@virtuozzo.com> Date: Wed, 19 Apr 2017 18:15:43 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170418154647.9583bfa06705c614a2640a15@linux-foundation.org> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: VI1PR07CA0100.eurprd07.prod.outlook.com (10.165.229.154) To VI1PR0801MB2734.eurprd08.prod.outlook.com (10.166.198.27) X-MS-Office365-Filtering-Correlation-Id: 4da3f5a6-13ee-43ed-74f6-08d48736c626 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:VI1PR0801MB2734; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB2734;3:LNkJIe4rKWl7vRXzp1roZoNp/hY0VNeqwyx2MifK8Lc0FLOCYE2rxRyNrtds1CVnkGzr4EDuPdrd1+zXyDd3HcvGJJy5nSdxfPBz94nynRg0D9Ga2un8HnNta5Qr0GlxOBVyzpFZGtTaOH3CixheeBlv8LV1suxPhJdQoC3haeQ3rEuC28kKzjfLGX4rivAvOks1BEG60RY3NlzD4TC4/lKFMIAZmjHZ85aFZCQNOZCy4lm+NQc/2p6pKCARsjQE7XQGjYI/rpCXqwMIx8yvDDi+BI0eMT+lCgGrPDiNyF/4jw6NkqHZDOymnKDjVTgFfuqg6ImLWkdKcBeRi3erGA==;25:+C6g+SHXs2mLYKazTvp5arjCs8DJhlfbvdOoWDFtACXud5z7YnbAt24oohF8oRwByBrmZDLBrvLufHwZlTLXDC4Bw7B+K3S4i9BFPDsYGXJNuQtIAjKfA4ktrETTPV6F0bj+qRcU2Hth+XBtm4oycl9PVJpPw8mx+5g+MROTuQqJkqjsMg70ubCXFglnI2ogOmqoeARvmp9aDbU1uO2n36AnX2yuGOvdkYXJZV7y6w0GFU/+uu2dT/WSRquFfpksiySUKsJZH03Kf71uLw+zetqU+p/cVSGkkcYaf1sKSc8z8sJVet6nCVepLEM6mhbWAomaau7A6MMenfRZnPe939/bec51fUH29NkrzVdeP5DZ4nS/Kbd3FDahvISVqtrG1LlmoZqbKSxBwwMnmMvC2gfzt0pFvMPBIocKzSm2l4xIeK/jVCjNkD5RMivXXlllv37GCGPBEsFFEZHJhSe65Q== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB2734;31:+KYW1gfkhIwYMoiYUaCJc5SbUZTje+BCR1TVW7dcdcnrO2RUqXUr+hnE9PiQsiHVU2omGyMgaC/guNqFwvRdl/Nwg4JySRJkHT7YYitpxlIjFyuhT0pBG20MstrbPy13Xk+3VN1nqOHX2DiMBb7gPviTd+6kCGTi9vLf23ROKQ9LYxzyZwOEnKRT5b8xZygOdE/vkvnIZFH5lAzpcONwq6Btgs8R9SZMvTbPoQ5AG3CvoqCKX7pB2Aucdwxavg9L;20:LHjJY0WsIk/brZql+N98IZZrjqQF20HWlDH3a6FUgMyIzM9kwlOyo025dWgmUvPy1lYXiZ/XOC/ehpYfyzC0uJrcJnxMKlQ4mdjHcrrecU+4EAnUGgekezbf7dIZZhv5MaIyjG12z1KRw7HGpYRGOfQDzeGyRTqN/DByX/4rldlrA1Mwpcemfj0VaMtvulRY01M9RH7xjLvVl4/kZ0dwNWU8Yr8kOobcn1W98T6C0cHQwSv8pz+dnQNtrWME1VIIOnLHIUWYzIim47rsZIDNJoKsCgT+zUnkcYo81q+oUdXoGqSm4yje5XCc2/ZljLDhLtN4IB6+LoYUxtkDk/mPzFMVJqb9fqEpWyezcO9UfBVK4rVSzqnf02CSir3j22ijooL99ZinyooFjX3iIoEHNscuyIo9UREEAutH94VyzQo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148);SRVR:VI1PR0801MB2734;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB2734; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB2734;4:1OAO4KLZ39nibfeuBFaqE8KN/ypYLJ1k0y32ENqsTr7yjAMeUGjSll4dUcrSMhZRoqnRq8Abir1zLS8gVTGL/3Rw3deTbxtyLCoa5Lvx//QNT6rPAfmf/5DRr/UKHq06C7+YIWdBMoNXcHEN/JrL36jxeUZRrDPelWrKtZ7wTNYPc0M3JwIvyeYsN4vosQ3HcZsK6zySuJ0M0lq1/o9JIMatGDJXODY7Zo+InzzTWHgg6aRJIWbd98MeBBm8phl21NX28aIlKB/j0/LIzBQSWRj0vFVBS4dxWwAUqNuOOvV3bQB8rLj91TxMcMPnkNZsD2oLec0ES9YToH2G73HWgwNuzVfKst8/EVwZBPANtTo4Mza47pLsZH7dKQVnPBXh6T3+uK49sc5OS2hGTe06wjgu4tQVXQ48e8MY11Lz54He6PO/sXL1U1W23LhL4c4Xe6IFVX50bBySFDnB0iZ6jEQaQ61M3xMeqOWj0a91mBUdqy9R+j9c2z8w0h2MIzDMv8QLYcuM3Rk6rKyuT8e2JTxBFVHNZ7hfyvm6vtapUY241pReKY0VMFDIuNdNgMICiZambwzWI+FBaDnHTArbK2ZH02uvav6vEl0/tDXfHxxY8szc/7BhNIJ3hjtXZvbHKZFCQCGp8n2yJKLI0UR8c5Z5mszWR6uUREfvLe01HKM39B7rQoBU06lzmaiwWxKITgXrn2YBN3yGWdaRvzsT4A== X-Forefront-PRVS: 028256169F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39450400003)(39830400002)(39400400002)(39410400002)(377454003)(24454002)(54534003)(77096006)(6916009)(53936002)(6486002)(54906002)(6666003)(65826007)(2950100002)(8666007)(83506001)(229853002)(230700001)(8676002)(31686004)(42186005)(86362001)(81166006)(90366009)(6116002)(2906002)(53546009)(25786009)(3846002)(5660300001)(189998001)(54356999)(50986999)(7416002)(76176999)(4001350100001)(38730400002)(33646002)(305945005)(110136004)(31696002)(6246003)(50466002)(47776003)(4326008)(66066001)(65956001)(36756003)(65806001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB2734;H:[172.16.25.12];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;VI1PR0801MB2734;23:9448QsmZPFYzTD8MGhwU3NL0Z51opZzcHSA?= =?Windows-1252?Q?Pvf8IC31TafSqYF4rucBpGyyxH3DczviLGf+C4G+nfXeICeY7lHxuBMt?= =?Windows-1252?Q?absVIIq0oTwJ2K6o+3a+fGQTVV0v47uCdeMUntYaKq/PdTjZ3vghXuNo?= =?Windows-1252?Q?KUH7fjfJOEFfBbceeN7AjziLPlgsGaocXN4qJwA6tqFz9yZ3DOOoDVMV?= =?Windows-1252?Q?ZkSI0ySBv6LuQDnXVtmOHvslENtrt0sZix4LJBhfEyVN+ToBm+RdHktl?= =?Windows-1252?Q?AgFc9unWr0Y2aS55CPLAZJ4uOtNbC76dQMMuGRPNc4/JfyiLmgfCBro5?= =?Windows-1252?Q?P3j0b95hkG5vjS3HR8DgaRQ+zCh/adR40g2N/0xk1v+NkTlDTF4/dE9h?= =?Windows-1252?Q?QrrswHWIe7szYHesiUPP8ZdjxXS6wzROBXB1pTbU8h5inbUVvihJmT3y?= =?Windows-1252?Q?UJw1p/TIDlSlh8EvRTz/l+84WW+oda35q1jL44XhLys5Iv18EDMS1BpZ?= =?Windows-1252?Q?N5IMWU0+qLACYY9DGwltV7Qvefe/0Xkh220uJmcEVgGJ5g8pPZbmw4jw?= =?Windows-1252?Q?xztFJ1vl4Nk05UUedOl4kIM9NdVvgTnqqiFNvzoVT8qlN1b71tuheIlg?= =?Windows-1252?Q?6B+W42lLk01q/nh775p8lk9/yLbr5uY4NevzqcZeyI7A9RnoLPil8iHR?= =?Windows-1252?Q?PYyfq4/zRefufbr1dc7LraXRjkwheJVgmPZBghxckZi2AYFh21QzZgF4?= =?Windows-1252?Q?DOxFJV9Dqpo3yD0DhlYMppU5EKGK1Zb7xJ/Y1fEjRH2qD2yUhneMnbi1?= =?Windows-1252?Q?v12PY7pFa2l1GQ8gtNEXcd8kEGeUFSWkWPJRFPPHJuE5+hW3EdxWyCL0?= =?Windows-1252?Q?mmgKyQzt5mqMQfkS2p2PatgWB3W9baRTU1yIod6pBq+6z4GLPC0bOyvp?= =?Windows-1252?Q?Y87NSOOyA83b3l7NR57Yb07agL/QLchyQl3KBchUOoaNIULKjjSeBW7W?= =?Windows-1252?Q?ZxYgrbURQ0vimXEPIogqu/J3zuHeXNNB1wgIdosPEIfnjgOiPZlpsM8k?= =?Windows-1252?Q?EnjUMDsk/xt6H+plNJFYIVn9rDPN8WZ2/5mOQ118HtZVccuJzH8jT9yU?= =?Windows-1252?Q?xKSF1zRH4dEgBy6GPlqNNOHGFOoPjt/1JpN4b8x7qGHSiC/SAW4dD904?= =?Windows-1252?Q?JOaSlLlTpnggnthn1IwbHdISVpVyFC5hE7mUARluQ9yseAW3iZCnZhGo?= =?Windows-1252?Q?TKK4kgDaIE477qO3YDgP9CAcspPo1WDUE3OMWM4yRl93DerIAlJt2SGO?= =?Windows-1252?Q?dsMLiDXwfTpmZ0SQurX/nZ7028f7l90QEbXIHv3tj7WoZvuueyKhSIRl?= =?Windows-1252?Q?DO2JiCB9UVyjAdXVU9vs0er3bKm16bzUleQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB2734;6:vdobKy+Kr5ppGpg50TgGo0Ptk5K+e0+BfJwRXF+FrOAMpqjkR3fChiQGJgRstS9pZYWmW3080DXqK0cxB6miQoW+ntEx8Jo+Qu5pM0P6S6XgpFEOnf5FavB9s7VQHBSNh0/SoklVMdmKwpH66a206EUR6C2p0/+ZN8+cRm9eAPbHxvYzfkmlc1YFUHFFiGdHOI2uyOZnGS+OJadqiMWX1APxxYhBHQD8CscV6caVoIAG9u/Ae0DEN6TSb9mfwrmZc+1waej9aVDH8QNlxunJRRaytF4SywmVgFuyEWrNdxc+ZvSSMGJ9rSjOjvUai3jZuhH8yN/hVuhI5eiwzzl/ikEX38u1hPW58NrjAV2wrajnFDX9cAE4YX1dbeP9/SfXYrubkEh/ZYOpZLkA/qSwsdRrKiaxYNdB3LIM/0/vYftwGZvWTjKvuTUj4I8xSzGK++c/pKzvcemmLTaU8/tmG2N1tHk1+AqQxBOoGY0Yf1hJa+kTMJOc3bNbdd0Ru2nhR8r95ODVVjqmGMDlytnIOw==;5:aCvOdHcsv9p1zIqV3ndzK1QA9YWWVpP3Os185Uwd5i/j0G3bfXG6kj4HXU/oUHfsaGlJ5AEm1ggeiA7Bi7iGPtmdzD6p/ArJc2XSrtalr/cUOL103TvWCNjNwB02iNdPb1dOdyuicgjuRO9rfpiT/A==;24:liBovXWen+EpTh257RtIhM+F0IG4bRlkXM6kpi/X0YheWf9Ti5Zh8P4cxvJzK1smo8n5z7Xe/8Am/TnhFVLzLT1Ihvvrnv9JqRqX82x67l8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB2734;7:N7IRu+OebR74klz0e4kkGTOn+lfJOkOibg49aBUggvploauRSIZW5V3Of//rpIWg1ugSV0/i1vKz7lrptdise8IypN/+PypiVXdfJMQiTifysNPc/dJKsDqj5Lz0mVUWxNRBDXUiAt6RZAQECEIUsmvcCB/EIs032mIXIw/ytopeRiNLPE4YO5ne/9eYFWSXFdLuFsgCp9PVvLqVZEsWarn9U6isXx4U7BgfTs9DYRd0e2RvAbl1SX+AR/Fa5vCZ4djJDtHFjdXUBTWOhziHeMKR/JvlyIBYyfTIKQYIlQpxvoyrTUub7+tmE46mHtJqqICf2m+FNIgIfFf96O2bSg==;20:KGnDFmEEBn4Gm+hJnsyEAfLzhwAUA9zr6dHzKyc1Q3QDE72ma4af/QM+2w9zW5q4bgCgt5hLSl4iPd/ap5iWg8nIM/janwzBzHMvXyhXyOM8YdCWLbwfvo2DKOS0+yMc6LWHde5PXFvnOS/c4h9vbZ/NfEeaZa5o7mL4FxJ3PoU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2017 15:14:27.4192 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2734 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1048 Lines: 26 On 04/19/2017 01:46 AM, Andrew Morton wrote: > On Fri, 14 Apr 2017 17:07:50 +0300 Andrey Ryabinin wrote: > >> Some direct write fs hooks call invalidate_inode_pages2[_range]() >> conditionally iff mapping->nrpages is not zero. If page cache is empty, >> buffered read following after direct IO write would get stale data from >> the cleancache. >> >> Also it doesn't feel right to check only for ->nrpages because >> invalidate_inode_pages2[_range] invalidates exceptional entries as well. >> >> Fix this by calling invalidate_inode_pages2[_range]() regardless of nrpages >> state. > > I'm not understanding this. I can buy the argument about > nrexceptional, but why does cleancache require the > invalidate_inode_pages2_range) call even when ->nrpages is zero? > > I *assume* it's because invalidate_inode_pages2_range() calls > cleancache_invalidate_inode(), yes? If so, can we please add this to > the changelog? If not then please explain further. > Yes, your assumption is correct. I'll fix the changelog.