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 F033FC4332F for ; Fri, 23 Dec 2022 15:31:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E4B4900003; Fri, 23 Dec 2022 10:31:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 66DC7900002; Fri, 23 Dec 2022 10:31:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E761900003; Fri, 23 Dec 2022 10:31:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3AFC5900002 for ; Fri, 23 Dec 2022 10:31:50 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D716C1A065E for ; Fri, 23 Dec 2022 15:31:49 +0000 (UTC) X-FDA: 80273961138.08.9A800B3 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf21.hostedemail.com (Postfix) with ESMTP id 5968B1C0018 for ; Fri, 23 Dec 2022 15:31:47 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=RkLgtlP2; spf=none (imf21.hostedemail.com: domain of BATV+a36cbb7ae26730e9169d+7061+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+a36cbb7ae26730e9169d+7061+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671809507; a=rsa-sha256; cv=none; b=cguuTDx+iJS3by+RNO1we1S6P+GkdtdxgkUaYlUnvMUIJO0JjXJgIgkrTD0fz3SrJztasD 7v48TWUmbKdqSbqPcjO3blfb4yIS/WEI9em4c6Aslvo+FmdrQ7hPlwtwnzXG5nOEZsroUQ zGs40iDJ/YYrqeWJT4inOSrU3G+ughY= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=RkLgtlP2; spf=none (imf21.hostedemail.com: domain of BATV+a36cbb7ae26730e9169d+7061+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+a36cbb7ae26730e9169d+7061+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1671809507; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YI+GETaE07zfIF6gTr93yZkoaqmkXGRyTSkPLa22IzA=; b=QRwdo9mdugMcq3xK7pDTRL5wPvTblXOhysfw5vjYiIJ2dQ3P9N9EIpJfjgE9fm8UaoPtTo C+8exGGGyImJDFFVQpruUn/KIGMy7Ud00JvaDWaA/LkYQ9yHHIsURBK2DcxoOFQXAbGmlD TEluHTVmNE8c59d0vWSuZb6DhwobiMo= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=YI+GETaE07zfIF6gTr93yZkoaqmkXGRyTSkPLa22IzA=; b=RkLgtlP2zs+0grtCP2XKKuFJes 6FHjSru80hSAyAYCWjR4giWwoV3DaU3XpMF7/3HZDUa+E/kozrd+x6VmAXg4TRMKJHW9b8wzSyfeD VokI0tlui9x8PQhh88Z82EqORo/ZAaFcoi8Gbx6S9ZrNjmqThuHWTTIRq3+YEjgq3IX5yINDVvjt+ e0+/qxQDLcU/llLFjIUrhW0P/9m/nHcrhbkOptvrE3r4S9ZgmuFyMLR/rPv50gmRKgcXjautu9IC5 U8MyiLTneJokeOtEKvUEFCZUMIUmLTbzJVU1SPbmDcoK0FIf2BAPGpTW1uoenfctyu+YHc+9jx57b guycEkxA==; Received: from hch by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1p8k0x-009SnO-0o; Fri, 23 Dec 2022 15:31:15 +0000 Date: Fri, 23 Dec 2022 07:31:14 -0800 From: Christoph Hellwig To: David Howells Cc: Matthew Wilcox , Linus Torvalds , Steve French , Shyam Prasad N , Rohith Surabattula , Dave Wysochanski , Dominique Martinet , Ilya Dryomov , linux-cachefs@redhat.com, linux-cifs@vger.kernel.org, linux-afs@lists.infradead.org, v9fs-developer@lists.sourceforge.net, ceph-devel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Jeff Layton , linux-erofs@lists.ozlabs.org, linux-ext4@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 3/3] mm: Make filemap_release_folio() better inform shrink_folio_list() Message-ID: References: <167172131368.2334525.8569808925687731937.stgit@warthog.procyon.org.uk> <167172134962.2334525.570622889806603086.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <167172134962.2334525.570622889806603086.stgit@warthog.procyon.org.uk> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Queue-Id: 5968B1C0018 X-Rspamd-Server: rspam01 X-Stat-Signature: a64pnky7frs15bsyigo68y5oyy5gu6ka X-HE-Tag: 1671809507-764867 X-HE-Meta: U2FsdGVkX1/V2NsjvvpdVuFso0szBmSwOJuse9oIRhymlcvALUGDg60AL/aT5qG/ZXkq5XFEWIKl0n2qkvUHkt7fUypU/LOgFQVd+ZsoVlczV1RyGz8WuAKWDTT+c2/0zysGK0pt5PFdDiV7ewlN5DBUQRM8/lyE6UIrrisR5lo/LJ0iPDRuURyYJfZyEvGmtT47nHcrE24CqVk18pIe5xnbeIihWt5Bwt2l9Ass6gf86ZRKwXPu+Q1u6X9gzjSDTGeY3KpLVZgb8UE+XdHEfKcTfnJlcnU0e/w6CN59jIXkkDEECypLdvmVsscMX+5NAZ9paG1FoZuh5kxG67DmSP4mOja5ez8v567Ni5uuBDzKw9iuK6Lfmmwa1DgheJpyULoSMn26d+T0hRIaufDN+P4ckp8vhBsm1wLSlujjHFDZD3oDYsdfKJSwwp7ZqJ/FSqdg6RxIBoF/koPWyjs+uiLboOBwsd+O4CEkcQ8xU7GNsCyIwoF4TerhMxfas3G0Yhm9UZLFHUdqzSkcosN2qx4nO8uLwC9NlcYxOEQ3NQ9Lwv/d/oPKVP1fUpEG6RGfwDKFQYzFP2hOXlrvFujBHPUsy4myyS+ZUXdvHLe9ZuU8O80HR5L6KDR3vqCtHiXSdTi9LK30zkey8+ImpwaZ7So/1xk6tp9d2Puk2PkgsMEfCQca/d7oomu5jUGWaT1BdasNVX6pItztEu4Dl4cnt3Z5U2Gh4KBpk/EhsvQaxh6D01XGxdkR0Yut6AofxcLQl76HLd7ve+l5ZLqft/10SYK78H6jiqhCdAtujinTfUFre7LY6A8iTe6DgmMzvLjM9dRqXsTQeO8tX7QHpOARWFgF+0sb6URVxUIZv/QR6hoQUkcX2AqdDRVCA+NsfhmizDsJQ0EqSGgaemaQnijM7Jw9r1yD74GmJ7ay5lQihi1QD1nFWY5Jpi8VML0+A4i8Rfjqld3/S2QRdACNBnM Sd2tIYDF N2ibOZbDecSPEs6gO55hP26vU86yYdR8BWYLpSlehJOjxObjVVdAkdAacEoG/1lGp6FueBfTatgDTukMZnmSO/LDLANMrnIKNOdH35qHCSPwwIjXWGfTZkaiaTZp3Svbwl1JYUEqwLPXAX3ah0AWRSzdtYcCTPtZ/clE801+RZ1psDb0pzCXdxgGodEw2xODpRlpJHSMbfFMIrqcJKJ2hSe4Wkal3l5AUeQhOrFRAJVZe6Hw+zDTUeXRdm8B/ioxKG+5m 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: On Thu, Dec 22, 2022 at 03:02:29PM +0000, David Howells wrote: > Make filemap_release_folio() return one of three values: > > (0) FILEMAP_CANT_RELEASE_FOLIO > > Couldn't release the folio's private data, so the folio can't itself > be released. > > (1) FILEMAP_RELEASED_FOLIO > > The private data on the folio was released and the folio can be > released. > > (2) FILEMAP_FOLIO_HAD_NO_PRIVATE These names read really odd, due to the different placementments of FOLIO, the present vs past tense and the fact that 2 also released the folio, and the reliance of callers that one value of an enum must be 0, while no unprecedented, is a bit ugly. But do we even need them? What abut just open coding filemap_release_folio (which is a mostly trivial function) in shrink_folio_list, which is the only place that cares? if (folio_has_private(folio) && folio_needs_release(folio)) { if (folio_test_writeback(folio)) goto activate_locked; if (mapping && mapping->a_ops->release_folio) { if (!mapping->a_ops->release_folio(folio, gfp)) goto activate_locked; } else { if (!try_to_free_buffers(folio)) goto activate_locked; } if (!mapping && folio_ref_count(folio) == 1) { ... alternatively just keep using filemap_release_folio and just add the folio_needs_release in the first branch. That duplicates the test, but makes the change a one-liner.