From patchwork Fri Nov 8 17:32:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13868562 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 B538FD64072 for ; Fri, 8 Nov 2024 17:33:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49B856B00A0; Fri, 8 Nov 2024 12:33:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 44B836B00A1; Fri, 8 Nov 2024 12:33:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 339E46B00A2; Fri, 8 Nov 2024 12:33:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 116E36B00A0 for ; Fri, 8 Nov 2024 12:33:26 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B0E28160EAC for ; Fri, 8 Nov 2024 17:33:25 +0000 (UTC) X-FDA: 82763623278.30.04D6F77 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf23.hostedemail.com (Postfix) with ESMTP id ABC3E140010 for ; Fri, 8 Nov 2024 17:32:59 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Md9pVrLM; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf23.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731087143; a=rsa-sha256; cv=none; b=3ChSU/A8EqnAu+g1PTY+6K60iMV+LEd4i8C1Bqq2gTfFn02VE9CGAeGYrZvwftGbGRuioE /ot8swJtXq/ZdSjj8BfMqjv/vFzPfaUAHrr+nn3gauEz9bsa4IZgeF6Yoim7wfAdlHYFW/ DrSzEpsAsEhccUBhPXOc66qNmn6SksQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Md9pVrLM; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf23.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731087143; 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:in-reply-to:references:references:dkim-signature; bh=2WJ3IwRH8RLBNIi0Kxo/o1E5+hUSf0Z9V2WPyhSRrlg=; b=OcT53SvGxfVSYbmWJGt5jk4LtotvfqLyCErazNKs1kMISexsPXkJ/wLE0qzzH/k9BCVZny slWDKwnFho8LBZS8zmAChCGacKheY1ulYotKyNekdN5U61iFm1KZFhUSqfnjk0LoN/ySea fMKX4A2oFsBSuKmJ1I8iSAC6U8K00sQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731087203; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2WJ3IwRH8RLBNIi0Kxo/o1E5+hUSf0Z9V2WPyhSRrlg=; b=Md9pVrLM+fww3VK28QFRakUU041fRIelTsM02VKJZk6+GUysVF4I+M973kEZV9aGj5ItME FCP6mlSeUuCnqfDaDph/k5sWIcShSzsdl3g0rin2oZwWdqGP1J5fevl3GYkXccqkhdyAoz 5k5LKqIdOEcPsMtduGkUgBq84ZymODw= Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-68-5-atHLbkMQ6QM_uhS-NvvQ-1; Fri, 08 Nov 2024 12:33:20 -0500 X-MC-Unique: 5-atHLbkMQ6QM_uhS-NvvQ-1 X-Mimecast-MFC-AGG-ID: 5-atHLbkMQ6QM_uhS-NvvQ Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1189219541BE; Fri, 8 Nov 2024 17:33:16 +0000 (UTC) Received: from warthog.procyon.org.uk.com (unknown [10.42.28.231]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 9C637300019E; Fri, 8 Nov 2024 17:33:09 +0000 (UTC) From: David Howells To: Christian Brauner , Steve French , Matthew Wilcox Cc: David Howells , Jeff Layton , Gao Xiang , Dominique Martinet , Marc Dionne , Paulo Alcantara , Shyam Prasad N , Tom Talpey , Eric Van Hensbergen , Ilya Dryomov , netfs@lists.linux.dev, linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs@lists.linux.dev, linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Christian Brauner Subject: [PATCH v4 04/33] netfs: Remove unnecessary references to pages Date: Fri, 8 Nov 2024 17:32:05 +0000 Message-ID: <20241108173236.1382366-5-dhowells@redhat.com> In-Reply-To: <20241108173236.1382366-1-dhowells@redhat.com> References: <20241108173236.1382366-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Rspam-User: X-Rspamd-Queue-Id: ABC3E140010 X-Rspamd-Server: rspam11 X-Stat-Signature: qgu5uqwwrpuehk3w3gxs95qtok7bsfp8 X-HE-Tag: 1731087179-608216 X-HE-Meta: U2FsdGVkX19VBp/Xsouv3mYPEQPm8KI7Gxt3GS5rQpLkwq8keeG7evoU4bNndIkFt4OHMVNaFbZI+hqPMsmuvP/t5c/UbmXlD2koRSNoC0FGOTcM6d2Q+b+0DWBN1qVZ/uZVwmqn51UreGfTQTWzXO6aPqvVD4QCw1yu9V2CeagXHpIgybxVqlduUaNBYvHaLCvuZEv/94VWm6aCAdvKDPVic1yIfSTuIfUXpJcP94BkC1bMsqXWBbQ/7xUqnPU0rmUH5IbdO0PKORY9q/VOPpuZgDUobIPsnTCpiNiqn9Ut162TLQ9DjLx3Tu6zvpqvcA2Z9Kl5kPILJ27ygDjy82BvHroC3c7RJWTSuOJ9iSZAHWJoyeBbWPdmiCsfTuZWOzRt2dGHOgWSQLAxSGj1fH8LHfs0xqzdj8OcieMoImKTPFi5XMBXDcCBoZLczd5/ysRooQ8LLz6QrEhHpEiwgMWaGuO+jtxetBmI2swCbfOaobaLwToDv/9Rfh0ut2h7wg8ikni3gkd2OmxI3y4vY0ejnwNLBf5kqb9k5ZqkRU+Zv/mLJluL+K8QwXlUtoMTMykaNyV48OHa5tKY1QSmX5CbFFItK3uwg2cULSNsE3/AwOcqZG+wii1R9TaR8ZGP0pULvUTohHZxek9n8moLk24PcfIHy6uevzUZPsyKCoLkH0mW9V9i6ptMQ9Sr2FhSrSXZMDuBe3H/PVA4BuR5aq6GQ6qinDW6MzYdKfFwCx7OvFm730vq2LdTue5L/g/UjlvU9hpFrNtRpw80Ie8Rkp0Tf5xL8lRfaM+OLbFtb0xB974jJU+xfxk0ZfqLBoaGMAyUGwgWSR6PsTx2fwif7yO6wTf0cBoS1sqR0TTgDEYthkEKfVd7/cECnkoywLHMRfqqf0kzENaxvSeRmtJ6jU1VPzkHdDFXlhCY2kHQalAIiQXkckzsa2j78IdPj+gnbH8WJgArzrXUYHS7fEO Opu7eRRs 6A1QLuxVVtCONJJuFaZX9EWoWSC1BwC9eGRPMEpRFzjQP7u92lx468nyC0+TXRxKqogVH9yt/N2AIjm8yAMX4UFm8fo832EzEo3V5hu1aOsMbDzYpin+t6UvCJeJtkBlPBqRTWQRMXE0L2sHyc8U7OxbhvkotT30uqFF9cGEJuTuQic2tudgVFqIQcZAIY6scQtcMhUYstUQc7dFTXgJV48hiWOEzZPlVFtHRIrLMEMHpEMT7h4AXNjoM4JYII/5uZb4Pai0MsJoItEfdTIhp/vEQCCj6TSfLHws3gY0AEEWRz3BwUBl1DOkzjP/kEIzBRe5SjcAKZ9L8tuC1W/Bo0IMfMa/PJJnHd/K104DO/RNCY3kDJvR4ts4bDGn0xEbh+sF/LpY6hGiw17lsLNgdAHwmTwzG/MNujul0ZwAcRUK0MkPA58Cae714nSa/+HLzn2w/K/JhPc8V52EjZjWM/AqJH2Fw6h/byLKp 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: From: "Matthew Wilcox (Oracle)" These places should all use folios instead of pages. Signed-off-by: Matthew Wilcox (Oracle) Link: https://lore.kernel.org/r/20241005182307.3190401-4-willy@infradead.org Signed-off-by: Christian Brauner --- fs/netfs/buffered_read.c | 8 ++++---- fs/netfs/buffered_write.c | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/fs/netfs/buffered_read.c b/fs/netfs/buffered_read.c index af46a598f4d7..7ac34550c403 100644 --- a/fs/netfs/buffered_read.c +++ b/fs/netfs/buffered_read.c @@ -627,7 +627,7 @@ static bool netfs_skip_folio_read(struct folio *folio, loff_t pos, size_t len, if (unlikely(always_fill)) { if (pos - offset + len <= i_size) return false; /* Page entirely before EOF */ - zero_user_segment(&folio->page, 0, plen); + folio_zero_segment(folio, 0, plen); folio_mark_uptodate(folio); return true; } @@ -646,7 +646,7 @@ static bool netfs_skip_folio_read(struct folio *folio, loff_t pos, size_t len, return false; zero_out: - zero_user_segments(&folio->page, 0, offset, offset + len, plen); + folio_zero_segments(folio, 0, offset, offset + len, plen); return true; } @@ -713,7 +713,7 @@ int netfs_write_begin(struct netfs_inode *ctx, if (folio_test_uptodate(folio)) goto have_folio; - /* If the page is beyond the EOF, we want to clear it - unless it's + /* If the folio is beyond the EOF, we want to clear it - unless it's * within the cache granule containing the EOF, in which case we need * to preload the granule. */ @@ -773,7 +773,7 @@ int netfs_write_begin(struct netfs_inode *ctx, EXPORT_SYMBOL(netfs_write_begin); /* - * Preload the data into a page we're proposing to write into. + * Preload the data into a folio we're proposing to write into. */ int netfs_prefetch_for_write(struct file *file, struct folio *folio, size_t offset, size_t len) diff --git a/fs/netfs/buffered_write.c b/fs/netfs/buffered_write.c index ff2814da88b1..b4826360a411 100644 --- a/fs/netfs/buffered_write.c +++ b/fs/netfs/buffered_write.c @@ -83,13 +83,13 @@ static void netfs_update_i_size(struct netfs_inode *ctx, struct inode *inode, * netfs_perform_write - Copy data into the pagecache. * @iocb: The operation parameters * @iter: The source buffer - * @netfs_group: Grouping for dirty pages (eg. ceph snaps). + * @netfs_group: Grouping for dirty folios (eg. ceph snaps). * - * Copy data into pagecache pages attached to the inode specified by @iocb. + * Copy data into pagecache folios attached to the inode specified by @iocb. * The caller must hold appropriate inode locks. * - * Dirty pages are tagged with a netfs_folio struct if they're not up to date - * to indicate the range modified. Dirty pages may also be tagged with a + * Dirty folios are tagged with a netfs_folio struct if they're not up to date + * to indicate the range modified. Dirty folios may also be tagged with a * netfs-specific grouping such that data from an old group gets flushed before * a new one is started. */ @@ -223,11 +223,11 @@ ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter, * we try to read it. */ if (fpos >= ctx->zero_point) { - zero_user_segment(&folio->page, 0, offset); + folio_zero_segment(folio, 0, offset); copied = copy_folio_from_iter_atomic(folio, offset, part, iter); if (unlikely(copied == 0)) goto copy_failed; - zero_user_segment(&folio->page, offset + copied, flen); + folio_zero_segment(folio, offset + copied, flen); __netfs_set_group(folio, netfs_group); folio_mark_uptodate(folio); trace_netfs_folio(folio, netfs_modify_and_clear); @@ -407,7 +407,7 @@ EXPORT_SYMBOL(netfs_perform_write); * netfs_buffered_write_iter_locked - write data to a file * @iocb: IO state structure (file, offset, etc.) * @from: iov_iter with data to write - * @netfs_group: Grouping for dirty pages (eg. ceph snaps). + * @netfs_group: Grouping for dirty folios (eg. ceph snaps). * * This function does all the work needed for actually writing data to a * file. It does all basic checks, removes SUID from the file, updates