From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 94379C6379F for ; Mon, 20 Feb 2023 09:39:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE94A6B0071; Mon, 20 Feb 2023 04:39:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E729A6B0072; Mon, 20 Feb 2023 04:39:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CEC106B0073; Mon, 20 Feb 2023 04:39:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B8F446B0071 for ; Mon, 20 Feb 2023 04:39:37 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 831CBAA214 for ; Mon, 20 Feb 2023 09:39:37 +0000 (UTC) X-FDA: 80487172794.29.B9A29DE Received: from mail1.bemta37.messagelabs.com (mail1.bemta37.messagelabs.com [85.158.142.2]) by imf12.hostedemail.com (Postfix) with ESMTP id CBA1440014 for ; Mon, 20 Feb 2023 09:39:34 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=170520fj header.b=Llkg32qy; spf=pass (imf12.hostedemail.com: domain of ruansy.fnst@fujitsu.com designates 85.158.142.2 as permitted sender) smtp.mailfrom=ruansy.fnst@fujitsu.com; dmarc=pass (policy=none) header.from=fujitsu.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676885975; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iwtDt6pMTmn83HHbscVVVGy2TY23z3NJU+FZAIhjnTk=; b=Hi8HsjkFWZ95A2GkKTe2/7axVyUyhPvTFeo1OQG4JbSM63hjGxQ0EXCI/5cqVdoUzWMZL8 u4im2hsA2Baxt8qgFHzNxvAwoX2IM/1kWQ5UqVabRHXuO7yHKi6ftmKijGM3+gQhH+lOzy xSjLbvlLn+82fPbwiB+s8Fv75MCKves= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=170520fj header.b=Llkg32qy; spf=pass (imf12.hostedemail.com: domain of ruansy.fnst@fujitsu.com designates 85.158.142.2 as permitted sender) smtp.mailfrom=ruansy.fnst@fujitsu.com; dmarc=pass (policy=none) header.from=fujitsu.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676885975; a=rsa-sha256; cv=none; b=C8Wt15JgLz0n1efIvI12nOMyAsNy+A3kTncZdrR6GT261ZTtlLEQ19yWWaFWlv1Z68ST3i WrEpWZ1dHoQaCg5YhThT50ZB4lGxNyeQ8pcnKk5WLL+QhSWq/sGjSLdDA154cPOZrh9lsd QcvWa7fBl6NtpCSI9eRZOxnnCGjr668= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1676885972; i=@fujitsu.com; bh=iwtDt6pMTmn83HHbscVVVGy2TY23z3NJU+FZAIhjnTk=; h=Message-ID:Date:MIME-Version:Subject:To:CC:References:From: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=Llkg32qy/lNnZwX+JfWyATPOQAxVuUdaezPi+b6hsqxjSAb1XcWPlCb/GKGdkhSd2 Lo8AXbRswBjXx05J6Gzrelp4P124oyUuxEpLUVqmlp547/K/oB82DD+BiUVfvcRYwC 3xH7tb6r77aqbcLBWXX3LyJkG+ysYwxmkt42jU6uHAK6eV5AF2vvodes5bAgPww4Jx ACnubdCLUkGt0tUDNhHPUDVfYQO6eCq9F37+YeCnpmtP8iFIh4JjQ0zebFlVHnsebj ridS7N1OpE0SZWfqbGcOj6EplSEQMpc1UvKr3VUV6zpjQ68A4EShrwCJJ288mmY962 XgQ9WzG9QSgvA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPKsWRWlGSWpSXmKPExsViZ8OxWfey/ed kgw/tFhZz1q9hs5g+9QKjxZZj9xgtLj/hszg9YRGTxe7XN9ks9uw9yWJxb81/Votdf3awW6z8 8YfV4vePOWwO3B6nFkl4bF6h5bF4z0smj02rOtk8Nn2axO5xYsZvFo8Xm2cyenx8eovF4/Mmu QDOKNbMvKT8igTWjP2rX7EWdAlVzHyxnqmBcRF/FyMnh5DARkaJ00u4uxi5gOylTBLPDsxmhk hsZ5TYcskKxOYVsJPYtfwKO4jNIqAqsbbjETNEXFDi5MwnLCC2qECyxLHzrWwgtrCAo8SuY22 sXYwcHCICGhJvthiBzGcWaGGSOD7pAyPEMiBn25RVjCANbAI6EhcW/AVr4BQwkXjfEg8SZhaw kFj85iA7hC0v0bwV5DYODgkBJYmZ3WAlEgKVEq0ffrFA2GoSV89tYp7AKDQLyXWzkEyahWTSA kbmVYzmxalFZalFuoYWeklFmekZJbmJmTl6iVW6iXqppbp5+UUlGbqGeonlxXqpxcV6xZW5yT kpenmpJZsYgXGZUpxYt4NxRd9fvUOMkhxMSqK8m4Q/JwvxJeWnVGYkFmfEF5XmpBYfYpTh4FC S4NWyA8oJFqWmp1akZeYAUwRMWoKDR0mE9481UJq3uCAxtzgzHSJ1ilGXY23Dgb3MQix5+Xmp UuK8PiAzBECKMkrz4EbA0tUlRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK89rZAU3gy80rgN r0COoIJ6Aj3Hx9AjihJREhJNTBpq7SVbD+/VTtXfNWyDwlWYf3MfhcX+hwwmxAdNPfJ88O7e2 Pk8l6UODNoRir5NRsFPEhXX/ZKIejeS59Zx6VYF2/fw5oi5pBiEC7Z63brVW1b2ybGiYtqS4T 9dvIpvBRS+j+hdJpMpNGHG6/FZj3QMRevqpjiYPbNb8IN1a9Ldr/sEs1ZKC46K0IhdEaudHSm 54lLZSbnmSxdTOyiP+ydwH9pcuP6pUnbuP58OS3y0T/kfpDbibei/z3azaVdmRXZX5VEPNl3d G7qEcnDU2dbLdi9wb22NFOJX7+dq8/+gtrB7ydNL4be5JiS9HBeRP81bt3ZGSIz1c5Nyr0U/W fVAq5J8x7UGjKwdPfxaCixFGckGmoxFxUnAgCOybnR0gMAAA== X-Env-Sender: ruansy.fnst@fujitsu.com X-Msg-Ref: server-2.tower-745.messagelabs.com!1676885971!6843!1 X-Originating-IP: [62.60.8.179] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.102.2; banners=-,-,- X-VirusChecked: Checked Received: (qmail 21262 invoked from network); 20 Feb 2023 09:39:31 -0000 Received: from unknown (HELO n03ukasimr04.n03.fujitsu.local) (62.60.8.179) by server-2.tower-745.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 20 Feb 2023 09:39:31 -0000 Received: from n03ukasimr04.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr04.n03.fujitsu.local (Postfix) with ESMTP id 3018B156; Mon, 20 Feb 2023 09:39:31 +0000 (GMT) Received: from R01UKEXCASM223.r01.fujitsu.local (R01UKEXCASM223 [10.182.185.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr04.n03.fujitsu.local (Postfix) with ESMTPS id 233C5154; Mon, 20 Feb 2023 09:39:31 +0000 (GMT) Received: from [192.168.50.5] (10.167.225.141) by R01UKEXCASM223.r01.fujitsu.local (10.182.185.121) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Mon, 20 Feb 2023 09:39:27 +0000 Message-ID: <55bfcacf-d034-46bc-37fb-16d2875f6d62@fujitsu.com> Date: Mon, 20 Feb 2023 17:39:20 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v10 2/3] fs: introduce super_drop_pagecache() To: Matthew Wilcox CC: , , , , , , , , , References: <1676645312-13-1-git-send-email-ruansy.fnst@fujitsu.com> <1676645312-13-3-git-send-email-ruansy.fnst@fujitsu.com> From: Shiyang Ruan In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.167.225.141] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM223.r01.fujitsu.local (10.182.185.121) X-Virus-Scanned: ClamAV using ClamSMTP X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: CBA1440014 X-Rspam-User: X-Stat-Signature: 9wd3gr9bm7ujgjwhh6k5hubiq7u95z9g X-HE-Tag: 1676885974-90456 X-HE-Meta: U2FsdGVkX18MKqqruoCL7l5eidBreYb51twvbLNNog4oqoA8KLAGsiH7mQhN9UO8EQrGHvgxDs3gHvjRrtHTnbZqsA8EuNT8x2drbs0EUGIyww4UxWQt2zQcY4OtbA7aCNd0TztNt9YCafAepP2kT2X3THQs0bmRyntXVUtvhkv+CHsaV54MsqFQ7jGPX3cXjOnxtmuMCbhu1qIldSK3TzbA1gChfsQ/rhy6h3PUVRmC72QvGcpc/tpatrd1IO63ulj3cnpBJFDjQxgT7kmvBknJxd1ZRIULpj2vFiqbCsPONHxpRf0PN3n9X9PH0HTuVLrb0nOyUaiu4RQhoQog31z1ay27penh64nlE3qHuQp11MqKExOU+bZrTZT4A74KMg1S090ULCkE+fecYuxfdfJJ2NFpjPR0KG6C4zMMDQudALS5dyO2rh3rckloWqgLpNXWzl24GZRCdXgK6g7iVs0q98V1H4TJ0dzSfLDqXvJ1DTO9x3qhFQKdFtCDFp5/2gFQL4DBq6MRX59vBAPseO21uzOA8A+RZegwNHoInjxHuRJiL583jgmmUdJXAx5pGTGtpt1PUB91DtswHU4BeUt51tdWfelPkkyCwzXAovsLzEL/g2J2Axvhg/XTqg9g5R2RvZAmkon6X5nwaO0PIYCwRVhA3NAxnvatsQ/xqmyk0LZyiY7+PUgSQOEyR9YRxbUhtEe+bFBIxB1jaSpDBnt1B9KZpSLhIpejR/RltRSnElEIUifQkiT7+FXR8HCM+LoHZVowJ4BFrauRaxwhPWGjag3WNIhujytgknMXGPdK6RkgvKYuF7NnP1S44cbLqV1XpVEBzp7N9bLnPn/Xjqq5RZjEV5UQTtpZueWbmky1Bals91pGtOzArB5q9vtv7LNQZOLEuph3lu2l1BL7s6OcaYQBBmUPeoUDnTeFs+r2Ii7XS95Vnj2y4E6leNqRYVbkTUMDFpo/YLAHDdD y2oiJRKa aQVFVV2rQHQ0U9f+AIeCmeZUgzs6QJZijb7PxnlGEzFHSBMUR+HEWxVrxCMMAf1TS2Rd4MZ26nHQ0k1m68zNpS1CtazHZ9rtJvz5oYwmQcplmxmpEH6xJy/MdawAL423vixt/buTLR3SRT7Ux/jElwRg583beTj1HCWTcjWlNuzSl7fL8ey0mkncPIUlInsMmb6uCurLGAWMCxvPe4nzq4D9E9tWpwXSu1tIkf99qprzjgP/6Z5hdJIVn8saG0tGwmLjzElHCSeT6FYE= 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: 在 2023/2/19 2:27, Matthew Wilcox 写道: > On Sat, Feb 18, 2023 at 09:16:43AM +0800, Shiyang Ruan wrote: >> 在 2023/2/18 0:14, Matthew Wilcox 写道: >>> On Fri, Feb 17, 2023 at 02:48:31PM +0000, Shiyang Ruan wrote: >>>> - invalidate_mapping_pages(inode->i_mapping, 0, -1); >>>> - iput(toput_inode); >>>> - toput_inode = inode; >>>> - >>>> - cond_resched(); >>>> - spin_lock(&sb->s_inode_list_lock); >>>> - } >>>> - spin_unlock(&sb->s_inode_list_lock); >>>> - iput(toput_inode); >>>> + super_drop_pagecache(sb, invalidate_inode_pages); >>> >>> I thought I explained last time that you can do this with >>> invalidate_mapping_pages() / invalidate_inode_pages2_range() ? >>> Then you don't need to introduce invalidate_inode_pages(). >>> >>>> +void super_drop_pagecache(struct super_block *sb, >>>> + int (*invalidator)(struct address_space *)) >>> >>> void super_drop_pagecache(struct super_block *sb, >>> int (*invalidate)(struct address_space *, pgoff_t, pgoff_t)) >>> >>>> + invalidator(inode->i_mapping); >>> >>> invalidate(inode->i_mapping, 0, -1) >>> >>> ... then all the changes to mm/truncate.c and filemap.h go away. >> >> Yes, I tried as you suggested, but I found that they don't have same type of >> return value. >> >> int invalidate_inode_pages2_range(struct address_space *mapping, >> pgoff_t start, pgoff_t end); >> >> unsigned long invalidate_mapping_pages(struct address_space *mapping, >> pgoff_t start, pgoff_t end); > > Oh, that's annoying. Particularly annoying is that the return value > for invalidate_mapping_pages() is used by fs/inode.c to account for > the number of pages invalidate, and the return value for > invalidate_inode_pages2_range() is used by several filesystems > to know whether an error occurred. > > Hm. Shouldn't you be checking for an error from > invalidate_inode_pages2_range()? Seems like it can return -EBUSY for > DAX entries. > > With that in mind, the wrapper you actually want to exist is > > static int invalidate_inode_pages_range(struct address_space *mapping, > pgoff_t start, pgoff_t end) > { > invalidate_mapping_pages(mapping, start, end); > return 0; > } > > Right? So, I should introduce this wrapper in fs/xfs/xfs_notify_failure.c because it is the only one who calls this wrapper. Ok, got it! -- Thanks, Ruan.