From patchwork Wed Nov 6 12:35:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13864630 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 3ACFED44D54 for ; Wed, 6 Nov 2024 12:36:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C859E6B00B2; Wed, 6 Nov 2024 07:36:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C35376B00B3; Wed, 6 Nov 2024 07:36:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AFCD56B00B4; Wed, 6 Nov 2024 07:36:54 -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 9335F6B00B2 for ; Wed, 6 Nov 2024 07:36:54 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5361F81BFB for ; Wed, 6 Nov 2024 12:36:54 +0000 (UTC) X-FDA: 82755618246.25.526BB05 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf20.hostedemail.com (Postfix) with ESMTP id B6E301C0030 for ; Wed, 6 Nov 2024 12:36:09 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="UMY9r/yY"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf20.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=1730896444; 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=hesQnSZtOCei7m60M9j8nPaH+I+0CSebks/fFqOrVIqVfn1TgAdep3mmos3iMXGWzL95Cl J7DFBn0ZFoA2EavYfJWq0Dyx0OANZVdELBH1KBESWWZ8rW0By2bXnHfK6AcxJe8OsTt6j9 hlSFS6pZc5VBRAuRg9RlL2MVwX5rwCI= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="UMY9r/yY"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf20.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=1730896444; a=rsa-sha256; cv=none; b=gsd88YUhuVm7utpIrLxR67HS3LqKjAuAkNmro8tccjHCN/X1wJOFpKPYqeWHNzvXSw0801 yDWWe48w8Zyy1pYyQTi1XRZoFURs4MpkNuEB7zjv1vx6DRVpslhLbN/sjMQBGWTYI9GpgU VLVktdSWg5n499UNuipp52BfWFZ65E4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1730896611; 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=UMY9r/yYQNZxPAoy65aRe4e5jSve1PKZ0/K71p3yqZl+0jgQ888dMW8SOCrQSP/N/cy6IG AhyJCdDtsTeqC/y7zBm3zRQG22C+rOYup56DYTN5AHFIsrU4qmBT2Ub/qSXO/03pbx6YF3 8G6Kpx+bNCyoWbFzXIaSxvkwrXJoI4k= Received: from mx-prod-mc-05.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-558-2SBMoXwxP4ix2-2-WMeamg-1; Wed, 06 Nov 2024 07:36:48 -0500 X-MC-Unique: 2SBMoXwxP4ix2-2-WMeamg-1 X-Mimecast-MFC-AGG-ID: 2SBMoXwxP4ix2-2-WMeamg Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9970A1955F42; Wed, 6 Nov 2024 12:36:44 +0000 (UTC) Received: from warthog.procyon.org.uk.com (unknown [10.42.28.231]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 5A94419560AD; Wed, 6 Nov 2024 12:36:38 +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 v3 04/33] netfs: Remove unnecessary references to pages Date: Wed, 6 Nov 2024 12:35:28 +0000 Message-ID: <20241106123559.724888-5-dhowells@redhat.com> In-Reply-To: <20241106123559.724888-1-dhowells@redhat.com> References: <20241106123559.724888-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: B6E301C0030 X-Stat-Signature: uj4kdgr8bfhrr3cgnzjst59scs85ax9h X-Rspam-User: X-HE-Tag: 1730896569-812242 X-HE-Meta: U2FsdGVkX18LVyjl0dDygr2ZdZxOYHOHK7rsWSRXqGXlw1ZkGrq6iFVbFOzcYMLczVPAidms6ea3qLshJKdNLct1jb81pvt7Rz36ccPUJye/9fnJY2ooncyCGcZ2H/Xcsx+ocTSLMRONVcw1zsadUWOZ3RrOZgozjSuM19ZCfM5GRmypckqowP+pejCAyCugVJt6log/TmgVerv1UQ0FV5Yvpn/szjknPw/q6G3yVtC9J7ZE0DG96STt2yv+DYN7Yj7gYTcAyHRcFp0TfW9ssKhI4OFRciRM0jgl4QvFfRWOnm4kwOAOvdnEYo/anOiPkAh7kDa/Hn4WqjvEk4rD8kkkkjmR3EhNnf06ekeZwLl1tndzLg/u+DVI/LB+J6rcvkQiTLOWzgx3pu9KMAEjG8YFmgzPLH+fFBSUZArotvuBQFJl32LFFfYrp54ZG+X8rVGmft5w/yCGCr+ZhA+jT3vSzT5iSSiBqVgwg/kTP3IGwZEkC7ZWD1w1qgpmL0LZzqEtNqArJJUxCIUD32OK8pY/rWGeRWcNQpXh8fUSMkcpmuMUhXv9UQOpmVwbe/dWjINpRc5cp5yPkgAUm944I+J5ZECMBtNwNAuupcKi1ILk7+rrPnjIjOZO4bdBg/vzanfiiF7n9g50Dck0HaIJbFwylzfvVaQ37lIkjBz7o6JPV0MYcYbIvfF7yuWXUMjLEuyxZoDVBGb7RfdGlFa1ejAARaYhoZDSoLV4IQf7JXDDeLWbHUfj/qVa61JBVZlbzpDbfjzzyLJwfrzZpN63AS7lhXZDsL2RSpggOwjIcXSaZ/iSlFYBG+Zeo+zM9kaEuTpIjKjoDenIrwGJC5qNNdBvW+CGxIrlw8cnYfGXKnX8eoaG94kjVevSIPx6lXxPey5PcxLJM4VDRz18qjA+8k/KhzMcdOFmThuDHwtxZeShNLohDbnYbk+050f5MZbJRiq2gWPIlSkGk+7H1GA yeADuOdT Emqb9yyPM/2373IesPdOAHrIg78ApVKLpaMlFE1wHkOKMZyxULhMczDi7YckNNToDbpefW5x52wvGMJGd14sWn7YEKCCeif7TcusvnI3fv8mFA2sQwoopf0H3ydr089e14uUnuuo1hU4TGSpfsjpHPsENaipy0bwpN3fhMvfXYcnlBznbmQ0lSC6HlxPW0poHmnsrgRup6U2TTaKsJQo7xtxFJYYER3ln6rlW9r4jE3MCYrgy3yAZHxTNmxUY6HnfQX0trABHiZNv0c/EFjoD/zSXWKl4aXf27EYYo6DscIGMYtRD5ql2TIACjznq7hHJzdcuygiYPNERG6ZN5ENJOe/jmg+TzlqbcpUUVGHJsGd05KziD6CABeuQyP0PFRlJQD8TfEHPK9TWtm6zOPAwQhrW0XN/vveG4kjJzcpaOe+USs1/YzP5WXHm4FX0arvnBwk5O+D60ESaeAU= 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