From patchwork Fri Oct 25 20:39:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13851556 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 638BCD149F0 for ; Fri, 25 Oct 2024 20:40:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9D386B008C; Fri, 25 Oct 2024 16:40:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E74C66B0092; Fri, 25 Oct 2024 16:40:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3BDE6B0095; Fri, 25 Oct 2024 16:40:52 -0400 (EDT) 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 B1E1B6B008C for ; Fri, 25 Oct 2024 16:40:52 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B92D11610E2 for ; Fri, 25 Oct 2024 20:40:29 +0000 (UTC) X-FDA: 82713292788.06.8DDE21E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 6E4DC4000B for ; Fri, 25 Oct 2024 20:40:30 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=NhBQQ+kq; spf=pass (imf27.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729888772; a=rsa-sha256; cv=none; b=AUh1s4oq2XWlxFHr7NRGqozSOgCvwo4uHlayPWvV/HmCqRkgphV8wag4/VuPsyqPwRfuDi L8KQr1Y8rMPZjRdgOyYw6YpuH/iWvR7/CPAUwDgO94mRLRsPiWIUJraAtp+Ew4rl0uekzs 2OFXi5rTL1RR7Rf8LOg7/gMxZqSxr5Q= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=NhBQQ+kq; spf=pass (imf27.hostedemail.com: domain of dhowells@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729888772; 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=D3y7QYrw+5x3tAtKUOOLcyQYinvrupF1XJe5kGSmngGpceUrLX7upanbdhxQk7eFpxFpm0 wYOut20ZFLWbnrM3Mn/gco8CXVc3hrABn3LhIm7E+wmQIOzLRDYlHrET6N8YojEoOMHmbM HX4usU4lI7KyZv85sh/+iTCtYNXefIE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1729888850; 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=NhBQQ+kq1R6Wdh9UL2DvjIa4pCv7f/pKHh2EHZXvYqhtCYKsbdlsdiLALwP/I/AQylbjXe a8WJhqAIIzuc5QFJ0XQ5kbgD1S34M+8lCRLg6er7jbaSCXkgp/VgOzgjiVN6feZbggoI0j +2Bwh/HDGZrNiD6uihxw/tq+aFGmErg= Received: from mx-prod-mc-04.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-364-YQ6BU2XqOJqtAGJuR0Eauw-1; Fri, 25 Oct 2024 16:40:46 -0400 X-MC-Unique: YQ6BU2XqOJqtAGJuR0Eauw-1 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (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-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E085D19560BF; Fri, 25 Oct 2024 20:40:42 +0000 (UTC) Received: from warthog.procyon.org.uk.com (unknown [10.42.28.231]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 278B21956088; Fri, 25 Oct 2024 20:40:36 +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 v2 03/31] netfs: Remove unnecessary references to pages Date: Fri, 25 Oct 2024 21:39:30 +0100 Message-ID: <20241025204008.4076565-4-dhowells@redhat.com> In-Reply-To: <20241025204008.4076565-1-dhowells@redhat.com> References: <20241025204008.4076565-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 X-Stat-Signature: g8wsgfk3jy87oot69nu866rrzri6pjky X-Rspamd-Queue-Id: 6E4DC4000B X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1729888830-950161 X-HE-Meta: U2FsdGVkX1/X7ypYsdJdTGAr1iy76c522Lj66AMgdWHNKKy6NMa8avL0CyAJVxCzxY2LLjGxGYDodU9RrxmOCzDaq7g6TwkgtoIET7EMrqbj+AD8Y4GPjHzf6PjSbVDxFwrE0r9u8xGjLieXAykK0ikKsEFGRSpGiL2BY1ilGZCLuVTAHv9ptBM2iVam7iyHIezPF+uNaLqxxGpVhopP9GscHoy+1d5Ozta4Nfqz1Lapz7PDUlI+a3k9voXvm9Zg03TnxrWtwpB9ewSPVSJKDkSk/wVZsarfnV9teqhIUc/vWPmny2dW1fwFqwN8IjA0DJMa/qI0jHZg3WblSC2WtBWYfWPWYbxeD38KkidZruwz2nlFJw/Lr9SXqoCpb+z//Twj5ijHa/BwlfysffJSvrulYQ2KUK8I5srMEnsy/7GdbJuBIVIpecDREFVowOaCpmBr/YmG4NBFQCkL8HdR/a59akuPrPA9Wzk0a03SKVa1rpIYHn+sazMzBEk/D1tcLpM+x9uT9o8IxCRrkUkBdGLJx/VRBNmS1aYXCOTwqF0S1sN4XTRiP3m8fJPI2j3x06mmtU+ziTjDgm95Iui0zJ/muHZGS9KsYoprM4sOPW2BI/ZooOildbotZJJjHhEbWSa16bybccwv1xdtnU6SvVapGKH2TggJqQBW+zG0LoosdNqFTgWpwuPmcgLy7VXJ3r4uJ9eqMzge1RvAZq604zy7ee31FFRiJBqFgnsb2xak6KhUrkf9krz2X86rMKL1byDq/MIm4hdkci3/JneOfI2SZKg+ORN3aA7+eA87qJKUMDjezB9t4PohVzEgvjNF1XUWy4TkZP8MN/DmdOH3QVDdfKXB1fOn7Aa2sqx+0faFqd8HbuS8IACgjGP5ror2Vg6+byKYRj6+cq1XhQNbhf4Unmp6L4INSY/hwQOgWldIdbI6CVnASMYPB7x6OWBlQkZ62ksKskFvEy1kQlm mRDRu7+3 igyG8O/4k3hBu362SQcGr/jBfnOTK3Yn1F8PnNqZqYL6KrAmDBZ+bD/5WLYg7crm5YvFYPevo1/fQq/qd0FLRb5iXRR2I7j+DFXNUvoibvSrVcrpYXi/aiE7Yt+xf1KN7B8bzas8TvtkgEp6aHM5c4Idmd20G4NrVd63K57ZQqsjxuU2wXCbnuVT6johgtmS3bN+IyZHD1zoAVskUUvBd9ogI8ZAuDGaK7SzxedQEkvsRgGLei0xUrYAxRUhn/rlfsi/8yxLF2M4PsW7sJuXmI7m2y/PNC8N4AFR5GFeO6ldVr8Tfq4YL2zMJjx3UhYZ6rBzQ8CALWritoas67tRSKA9k2r9w1gfWJpljPNLWMyv3PSQh5esotQfJSgCJCa6E5s1F 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