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 56D78C47258 for ; Thu, 25 Jan 2024 08:58:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFA4D8D0020; Thu, 25 Jan 2024 03:58:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DAA298D000C; Thu, 25 Jan 2024 03:58:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C738B8D0020; Thu, 25 Jan 2024 03:58:09 -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 B37F48D000C for ; Thu, 25 Jan 2024 03:58:09 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 52BFB140674 for ; Thu, 25 Jan 2024 08:58:09 +0000 (UTC) X-FDA: 81717231498.16.4BC1EB3 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf03.hostedemail.com (Postfix) with ESMTP id 499DD20005 for ; Thu, 25 Jan 2024 08:58:06 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=owPlqsT3; spf=none (imf03.hostedemail.com: domain of BATV+b97a0fc658bf3e588113+7459+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+b97a0fc658bf3e588113+7459+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706173087; a=rsa-sha256; cv=none; b=rVX/DYL1M+/0K66biyyEYvYk6J7C9T7wp864fnjgcnHimCPdEHGTMHRQv7w0lSkdZ3cFoG 8oOtR8g/Wkveea0Cczq1a8TLXNUvCKnZ9UdZPIlGVIplRRcEKRzsJAaL67V9ko3SvibcK+ 6SimEUOC6F5f/6fDfzZ9gJYRH+U85gI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=owPlqsT3; spf=none (imf03.hostedemail.com: domain of BATV+b97a0fc658bf3e588113+7459+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+b97a0fc658bf3e588113+7459+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=1706173087; 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=RA8V8EA4rA8rQA73Mc1Vf6KwiS+UOimfzJVh7CVG65w=; b=2xquxT5EUfvyHILNe9QkN/RwjjmHHPBaVts033XbTKZGEUr7K09ZEwMkL8qcDBXa77IOT8 zJvdZqoeom5w3Kb2Iji+1tr3Fd8csMmPPDL7IeHAEqoI/UEXA2c2t8i1R0eKqb0LZK9+hf uzxSSEz8K6m2gjrCJdl0bboXguu2oAM= 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=RA8V8EA4rA8rQA73Mc1Vf6KwiS+UOimfzJVh7CVG65w=; b=owPlqsT3O9aPf7GsLEuOhaWwm/ F9fZByMek3weUp/Tn0B8XXcEI1wGTaRNwTk4Q5g1m39aJRSzh+QjHw6MhVjTHQfLNcBTJctkAKYe0 fQRrtpUOkrQ0NC4qEMFs6YLIlolfim1wli9+T5fD6qtr0K4gd4ls2gsB2r8qmxRPtVStH0GFiWVsU w9f7GF4ablqHIgutdPXZXXEBxj3A2KgTuKuOqDtEd3QwvSadVyl1eVwA+pV3lbqJW2D20pbo92l8C acymCgyBnto3PtRrJ7SF435WyfTNpO3CAHrIbAf8Qu0178Yes/Bo4PRiKFUD12O7GJJhDT0vXGSDz Tsovl5GA==; 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 1rSvYi-007Q75-03; Thu, 25 Jan 2024 08:58:04 +0000 From: Christoph Hellwig To: linux-mm@kvack.org Cc: Matthew Wilcox , Jan Kara , David Howells , Brian Foster , Christian Brauner , "Darrick J. Wong" , linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Convert write_cache_pages() to an iterator v5 Date: Thu, 25 Jan 2024 09:57:39 +0100 Message-Id: <20240125085758.2393327-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-Server: rspam08 X-Rspamd-Queue-Id: 499DD20005 X-Stat-Signature: pxf6faiou1hqmn9k519mknnf3sma9561 X-Rspam-User: X-HE-Tag: 1706173086-707260 X-HE-Meta: U2FsdGVkX18JAcTs15T9Blc9lC4XuoBQafJ/DTE+VHDYZUXJEKpPPNioT+VhZbH/7Rf1rq0HfOz/AuGSt3E+gZ6hT6zjayKT1REU/X+IxI1xqKc4mRG0y2bvxLk6JeQp4fLQ1lkwYu86DD/V24JatjZHEq8QGVmv37eIXA/xLUg821Rmf1dZheGkSXcTP8L7Iyxx2umAvaPQ4FAze/E35jrtMt93uQRBU6SRIFitur5u72CB+uu16t1BGOqrMGoDD9zyek6XpZhbZ0vKsmbVBcVvvboJBeeLjQl3oTwVE6gf5rnN0+sxDIG9pQMQbgIHZgQAOSwCmsDTUYKtoWi1wOkMpQRsRmPMnGj0U5hAlX+vxJZpVywnqzb1MGT+tGVKeMNOAx8JhMdlmKb/889NJgxT8YOKqXyg+XLSJy1ITYVZN/7KFS7H7Blp1Wf13iF0DEj4LsIYqTpb6zP1oTCSDtIo8qOIVoB9c/tnRZpw5+uxnIq3JLBHI4lrs11DBP44LhZzIqZHj4V+pbyWqtcUoiTFD4gq+hTxdqgyG9f4wB4UHYbpoa2X05W52ACHD1muNA8wvTIZgmxqZDPk+vMOUwVzuW15ofdlfW6yvLv8MtQJJqJN2qqkPbfIhXXXyAkkPVeJx9kpwx8lzS9/xt/PbYD0RTsRc2wfIj444hc/BKublVqrtU52uEqj+FLr9peS4MG79d8aDBSXd1U1HoF3et+3I0dudxj/XH4Vuaq4pyZc/lcDD/PsYpHlACHToC5X0sj4RGRRaiOsk4w0Nlr3Y+rFx74APi+TTEubqRjqcBmFV3w0C+9G3Fae6EGsR2N4a3gdIv28z9QdhbFB34ueYDuFCtsmithOS7wEbKxIs69+b4s7SpGOVRtsrVl8XuDmfvsNSlELx1gVaz3nUgMNM6KMzvwDS0GQYG7EMXbYaOhZVfwOJFSU9hnMpu+utoBg6c8BzJTwFK3D4JzmlNa 0cHJXphw gNrb089TXnko4w2ZMj9tMiaKEadg4F0nKFZ8WbA6RCFiw3ROK0oeZkmhRGRrg689ve2ZgUnnvJovjLQ1EV4j4R2Hbd45PfI6N6v0XinznG2G9hAmkP51C3JenfRhjIeRrHngbSAeXp7u1kf9cHWYnUXfCw1BmbrbdLgLEkLb1PnUDLKjKHt950gHmblAzjod7uzrJJVIL5Wyhru4OwgoHTUN9SZqnapQ13TWJbpfsA1qNLe3WDPD3A412TdO0ZgZ1784R05cAz3KLoLB2996Ce0BNZGm93Ic1LN4rp9r42f+UZpj2qrSCOT5MyNeY9+UlHHRKscYwaJ6zfYzaEl8bNg9MqT65zZJpAnCHnMyxuwVxKlR48145Kt4l+Y/fgoqHcSLxUjLyKrmLRjTemS0AFrXUHDjRZSzJg6uptIA3rdcBjFbltPGSTSFyruZnVfjHi0hEIiK5/R528WY= 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 an evolution of the series Matthew Wilcox originally sent in June 2023. Based on comments from Jan and Brian this now actually untangles some of the more confusing conditional in the writeback code before refactoring it into the iterator. This version also adds a new RFC patch at the end that totally changes the API again to a while loop, based on commnts from Jan and some of my idea. Let me know if that is a good idea or not, and if yes I'll fold the changes into the earlier patches. Changes since v4: - added back the (rebased) iomap conversion now that the conflict is in mainline - add a new patch to change the iterator Changes since v3: - various commit log spelling fixes - remove a statement from a commit log that isn't true any more with the changes in v3 - rename a function - merge two helpers Diffstat: fs/iomap/buffered-io.c | 10 - include/linux/pagevec.h | 18 ++ include/linux/writeback.h | 12 + mm/page-writeback.c | 344 ++++++++++++++++++++++++++-------------------- 4 files changed, 231 insertions(+), 153 deletions(-)