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 70D2EC35274 for ; Mon, 18 Dec 2023 15:36:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E44218D0002; Mon, 18 Dec 2023 10:36:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DF4398D0001; Mon, 18 Dec 2023 10:36:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CBC658D0002; Mon, 18 Dec 2023 10:36:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id BBEC88D0001 for ; Mon, 18 Dec 2023 10:36:00 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8615FA204C for ; Mon, 18 Dec 2023 15:36:00 +0000 (UTC) X-FDA: 81580339680.22.5EC2173 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf08.hostedemail.com (Postfix) with ESMTP id 0D822160013 for ; Mon, 18 Dec 2023 15:35:56 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=hr8byNok; spf=none (imf08.hostedemail.com: domain of BATV+09f18f96a25a69770120+7421+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+09f18f96a25a69770120+7421+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=1702913758; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=RI7QSWqpW/rXOSRWmDYPC2oSmh16kWQUwrhbSyLEfQE=; b=mcKvfuWSwRr1bJr/KrYy0AYTlfvUKJv5orgGJI6V7HEvxguBc9H472smB3qTS/uCfQUP/b zTWINEaorQpB3S6OvaXMwIABcJs0lkFK/rxRGRxpcywm5O+sNZC2aBywiRFvIJ2pUbiWzk U3kjIPkgN6yF+I21kC/m/toHMGVAjbY= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=hr8byNok; spf=none (imf08.hostedemail.com: domain of BATV+09f18f96a25a69770120+7421+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+09f18f96a25a69770120+7421+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702913758; a=rsa-sha256; cv=none; b=5pLHvS3zZbD+OYXV9kMlq9vpSzjotdvHjYI5IVxQ2gxYy48bL3JiNn8myWn97F5DWAnlFN w5u+55L4nEr32MRweQW+CasqXt87w540wu32MvZM/ZTIwArqNrUsWc+RN5Br9NgRqWs4Rl pNbfUgOrWopx9mYaqERCSQwSWs931FY= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=RI7QSWqpW/rXOSRWmDYPC2oSmh16kWQUwrhbSyLEfQE=; b=hr8byNokwE2STMeHvc1D6nVSD7 HY4KMjQkEHSA6KKAYU3EMbGbDd61EizaOitfi2q47tbqkHkCXMJvKKra6kGOwnE6FM5JWNNqwb7Wq sKxXqwePDIeAq75ju43zRv8/f3XKuI4OYwY2uv35FyDQAeWHR/ARBjgHp0xeqFbBYVSJvxGwoBOto uJli+WJtw1f+u3NbdclmwVazKFxCxW3XAg6xP9rMED7G49LKm8WOzb6GSpqF3n651wQwRgz8sd0Yq XfrTinM8CzSi1KYt0hMdjpIKESyAB/6MGND/n4Ivl1V7dYFG5swW0Fbhf1i9YRJEy0dhZxLVpvmOF yzYTtEww==; Received: from 2a02-8389-2341-5b80-39d3-4735-9a3c-88d8.cable.dynamic.v6.surfer.at ([2a02:8389:2341:5b80:39d3:4735:9a3c:88d8] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1rFFes-00BEFW-2N; Mon, 18 Dec 2023 15:35:55 +0000 From: Christoph Hellwig To: linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" , Jan Kara , David Howells , Brian Foster , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Convert write_cache_pages() to an iterator v3 Date: Mon, 18 Dec 2023 16:35:36 +0100 Message-Id: <20231218153553.807799-1-hch@lst.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Queue-Id: 0D822160013 X-Rspam-User: X-Stat-Signature: d14e6hyh1ihw9q7ny618o958sgbpr4bw X-Rspamd-Server: rspam01 X-HE-Tag: 1702913756-14643 X-HE-Meta: U2FsdGVkX18EWnnPwQ6qwgdi1R7IlR7wuuIyXEZ+1QCQZJw5n7jmzFfYs7VwzMj5lN1R99k2m1gJmgBumXETh034nr9EoFwiCRoH1LeOCwy3zXL82CpnoBDjRYCixYZymwAVrkcXECYlJkfN6bRmMOiXCYa6E4w6hiUx8gdeTti8kMEo9bg5qpYtl7pbMj2qWE7WxkpLmeJ5TXhAjZx/ln4idN9xglqKdAVWVAW0jXEevNTD1743GVGSxZqId/U+nZlWAhnSNI+Rkw8TdkvxDz1Rsnc8ZKV3ChJwT8banGSyAkUt8MRDlk/wosscWFYBs+gk+qPCn2lWNP7UWJqiJ7k2bN4eDgTWPS9HO7XhBAP/0t2mWFyR+rsTlHjm/ygK+q9C6kdc9qNaTwN8W6pqETpWyOzAdakzXDoy7BsgCwQAm7Pec+zByhL50EJiZbAZ9lPn54rJUrQhI6u9UCr0dupDraL4Ge2VhABG59icI/FSHUn5q2D6wYslUubLXkKmZAJIPov5Q5ixi2mIJ2230T2gwrOmAXKsPtF041Pnit41nqxbssz2yfJFl6P3bLT9HIM0ANdUvAnn2rABtLjbYujh+OqzJNflw1CbngKIWfUPJ1rKZHHQkbsdpks+r/oVYTFeTab1bxVoVVkG/t5cjz33j8msmu0G2fEBrgDztzlDWR6HDC0TzDlKieG9+3dEm+EH3XB7yIlXfUoZ/IYQDPqCBdcA8aQdC0SlVRLBmV2eN6LuiVBJActoDVIfolVxV8DP6MaqesnswIoxqBLjw0va2WfvvDQTKP2+357vsJL1T1LCbaVZhpLg6tf4t+GNjvonxN3GIFtbaiWe1kaAKBAKtXCxKSomXQM+Bj/OoaIEXOX0Oy8SHRIzfOTEHb6uNE3OF4J3V3OAksU6ife+xutMbnMM2Xo+o0PuWDybUz+3l+0PfzFHiVPVmTBs/B6XIkpIPS9CRZfz8WcJIPr 68+qT/oi E/is2AIE42aveXijT3+6RehLgc8tqj9H+SKYmiS8DVlFRYn6rLqOpZj3U1PxpqpjareC+8HVggbnRoRNnjiki3gGP1NHR0JPUldwf+ePCIWLKz6MWc4NHx+WpiqGoo6wkGAEdTBdYlfYPUuEJ0JgzEdAXpsWwHo5P2dPV0unJNwBByFrc2/RGBAm3vK4UHtYE4k1SUI2A1RArit/rfDvaTWADUzks9kVE5kkXZGkG9CXbVMO+pBD6gFuvQno7n5bJvW04KNqVXHyNddhjf4WPtCKZHui6e2fqipIkBUuTuZZYoBCSVoE4ny4gEXceQhEfu2C84iRH9m5BaiucvyY0+GCFIwbt9XnCxdV2aBepWYY0+zOPDVI/7/KzRIE5qZeTQ31pwowMFistBJSyzG8a25eMFHUjTYamIkZaizq59sQ7Vbn2+RJyR2nZxIlS8DoOWjzc8DbJjZ0A46Q= 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: List-Subscribe: List-Unsubscribe: Hi all, this is basically a evolution of the series Matthew Wilcox originally set in June. Based on comments from Jan a Brian this now actually untangles some of the more confusing conditional in the writeback code before refactoring it into the iterator. Because of that all the later patches need a fair amount of rebasing and I've not carried any reviewed-by over. The original cover letter is below: Dave Howells doesn't like the indirect function call imposed by write_cache_pages(), so refactor it into an iterator. I took the opportunity to add the ability to iterate a folio_batch without having an external variable. This is against next-20230623. If you try to apply it on top of a tree which doesn't include the pagevec removal series, IT WILL CRASH because it won't reinitialise folio_batch->i and the iteration will index out of bounds. I have a feeling the 'done' parameter could have a better name, but I can't think what it might be. Diffstat: include/linux/pagevec.h | 18 ++ include/linux/writeback.h | 19 ++ mm/page-writeback.c | 333 +++++++++++++++++++++++++--------------------- 3 files changed, 220 insertions(+), 150 deletions(-)