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 DEE72C46CD2 for ; Fri, 22 Dec 2023 15:08:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5972F6B0078; Fri, 22 Dec 2023 10:08:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 51FB76B007B; Fri, 22 Dec 2023 10:08:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BFFA6B007D; Fri, 22 Dec 2023 10:08:33 -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 2677B6B0078 for ; Fri, 22 Dec 2023 10:08:33 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 07C78A120E for ; Fri, 22 Dec 2023 15:08:33 +0000 (UTC) X-FDA: 81594785706.02.B5A97CC Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf15.hostedemail.com (Postfix) with ESMTP id B8A43A0025 for ; Fri, 22 Dec 2023 15:08:30 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=aS5F82fI; dmarc=none; spf=none (imf15.hostedemail.com: domain of BATV+af923ccb694ecd533eae+7425+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+af923ccb694ecd533eae+7425+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703257711; 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=O59wXtdUMZ0EU5oPQN+2CB6SQXGKJGnzgF8I6DSjZIU=; b=Z81XG2VitMJDZHmz4/F8mSxJJ9guX0SNh8ttgvFe3i9tvniVv+HZ2U6KlagT1IPkTYNtdW 4AGvbLbO4VLlD6q6BWsEblzPPH7Y14YK1z4F6bCkI6Q8Npg6oUiIBlQd6iApu9usVAPAZj zB0OQ53h81zmQh7sGg+3c5SQa/OEsmA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=aS5F82fI; dmarc=none; spf=none (imf15.hostedemail.com: domain of BATV+af923ccb694ecd533eae+7425+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+af923ccb694ecd533eae+7425+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703257711; a=rsa-sha256; cv=none; b=OGHcNkxpwgApYdU9mjb6YrSwGNIFNJrm5JMyFRM/9coa6rwMY4B1OYKWKExa2QtIzV5WM7 w8abFq5u/YMD9Oj/RII4VkYxY57irEU+0CKsoF+aWSjsPSlIbdHQLDQyIGS+80bZHbD3Ig wNmftHdq7iD+3eFgWxxD6PZfzmG5638= 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=O59wXtdUMZ0EU5oPQN+2CB6SQXGKJGnzgF8I6DSjZIU=; b=aS5F82fIeLyqjbDbpruxU1HGcc WQXg7y8/yE0x0IPr7i1D2yBjlFlejXENGDtSDqVKB52aCks5/PMU8iOPnlkrObxPoB03JpzfusjT4 TlTZhcDFBhtJ0CW/P5ng9a1WGaUIiwaynr6LU0Sz4grNjFWydHbArp1lEPeF5h/1de0qq4qcVmC8y BgFQf1BZMLSNpy9QWD0q74jXcJGLglsyebHBjGH39R8mSQzA2z+0v3+XEmEX7Ci44wyADYpMF1yc4 SUtmFOOJlJ1rBkJXKmmem5yHQD/NxZ+EXC5HkgmGRsvDDRCM8EUVu8ZCtpEjLUkqeh2hVnSXzgxZg +g1RIjNQ==; 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 1rGh8V-006BKh-0a; Fri, 22 Dec 2023 15:08:27 +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 v4 Date: Fri, 22 Dec 2023 16:08:10 +0100 Message-Id: <20231222150827.1329938-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-Rspam-User: X-Stat-Signature: mnpo1akp6qr56cgjg7pgjqweeb66xh7q X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B8A43A0025 X-HE-Tag: 1703257710-647120 X-HE-Meta: U2FsdGVkX19MCO5YWYDOLCvaroAXpaP68MdvItEELCdZSWF9TXLcbYwXHAnL1fpTXAr8T5+ucWmFuDBjHCxSIGec1KPLAuaj7g2xcirbpLlrW2syInzB7OBYvZynQB/hUzfoblkEqDpKKy+/27MEHXveBAVFNHqGxnwEY7G1mqhV0M6/qNU10uqL2b73g9B7dE9FlnOdawreC21K4GdeKTu876i8x9knMrYl367kGEF3jaJ3WiP7Djftl92STZ+HDxtCPbsgV6l/cRGsChhywlt0Ek4xmoDr27wv+icxQ7iSmUVf23LNaW97Hpw4sNVraTFEtx/Z1MrjVJ1AIKA/SgqUEvHKs9AvH75SJLrH0S6NzGiNXgwdoKTAon3ptl+Tb+zI8KDoA1A85z3bOzZ3oIhUzo5jnYjm2DJSGQZ/mWEBLB3ljc1tG705KcU9UzI+Z1R45tdqB9lvkPESbOeRw8GU5bW50V4Xos8cy8ha/vMSJFYwE9MLjTSNpn0uH+2ZxvCiCJst2rsypDcwGKStSUYDsPXMggzKODODRsNl02FAlUojmrEYIIrG+kvbxsb5ttAWs8ODAhH2he2Iq/p/kSXpM/CwHob9C0TeMPXKAY0f4aKSF2L4Xnkj2OfShVY5oMgflh1QI7NYJQ3FD40noPnc5vJV18Rai6UX7svj8WacVAjFrGm3gWZOL9UQ9WKq4cAJwI1rWbK0y71XiKGiP3i6fatrI0BM0KznlhECOxwGGFuQh+xduoeUSRE7X54EoBR6/DEutxXOCRd7cH+d4M3EQS/lr+6ydDmJxLLITwhqIObXYHTJVmwZL5hWh+j50OqOjqmgUCEvUqAGzN2GtGAtDlKMWUydIsJFcsFNy2b0tefEYOgHY/gNhbzCjGZ16GFFxFlVcRUQ9bq3QG7yxlDAHdAAQPXPYV7uPcbB8Cql3Mh5rWB+frO3CXtAVyCp9E38BUGyn4Y9jS9oOMB RT1Jo3rd ANo7C2L2NQCN8oQo9z6HGAsxjI+b7qzuUa3iPbV9mHy/WSyHMZZza5XwTSOOcc7KfbB8Gt8JqOQR7clAutt2qI/0ighruORijUyryNehpDXcsxlHg35b45rEUXHGFQKwFltw6g8fyKBcvvG2LqC2K0BJRrhvIdufcLSFbKIzclNn+npbz/lAwneugeZGY/9+ziSodehZjILtXaLrzwpf6UfsWUBa4vUGLwlIKrqcxUr/m8myV5OeRpVErYfaFkIijzSq8Cfv8pHisveIcupAfQKVsQOj0b/zS94lQPI614yp8PEBdK7JWFsCvYqYTI8n+bmApOK7C+phXPWE0hnEyAzgFREk594yEjQH1M+bx8W+O3UeiPD56cZIilFBHQm+6rRDSkj/YYEZuAUMYZrbiHBuXYE6PeZMpKjkf8tmhHLaNhp+ljJy3i/hMsOW4CHL8s2mgSdFnjdqN8q4= 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. 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: include/linux/pagevec.h | 18 ++ include/linux/writeback.h | 19 ++ mm/page-writeback.c | 328 +++++++++++++++++++++++++--------------------- 3 files changed, 215 insertions(+), 150 deletions(-)