From patchwork Thu Nov 11 16:25:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 12615441 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 610B8C433FE for ; Thu, 11 Nov 2021 16:26:11 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E2112619E4 for ; Thu, 11 Nov 2021 16:26:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E2112619E4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 0F10B6B006C; Thu, 11 Nov 2021 11:26:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A13D6B0071; Thu, 11 Nov 2021 11:26:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ED2106B0072; Thu, 11 Nov 2021 11:26:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0213.hostedemail.com [216.40.44.213]) by kanga.kvack.org (Postfix) with ESMTP id DFDFC6B006C for ; Thu, 11 Nov 2021 11:26:09 -0500 (EST) Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 93635184B3576 for ; Thu, 11 Nov 2021 16:26:09 +0000 (UTC) X-FDA: 78797176458.10.9775AC9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 34CC110004CD for ; Thu, 11 Nov 2021 16:26:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1636647967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8bm581BkhHLAgHXcU5RDiPE2gfVwKDukiIT1uir51Iw=; b=Q3yLNQh+bjsGFPlGTBedaJsQB/aX01S8KGRHvxfYMZfAsGQUvepAXTE1bhvmQRSPZC43Vg tdkvMsmuQW/2XV7nS6/FqfyJb1NtB3dlt5Kq+nfkPX9Xa1a2/yRVS5NxLued/hWF1xLN88 J7kOHjt3No1cLHqUy1JIW/pQCv/D0xE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-225-sDZ7WAxrN6qb7l0ozDVudQ-1; Thu, 11 Nov 2021 11:26:04 -0500 X-MC-Unique: sDZ7WAxrN6qb7l0ozDVudQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 34743100C660; Thu, 11 Nov 2021 16:26:00 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.33.37.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3BD4A5C1D5; Thu, 11 Nov 2021 16:25:53 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells To: torvalds@linux-foundation.org Cc: dhowells@redhat.com, "Matthew Wilcox (Oracle)" , Dominique Martinet , Ilya Dryomov , Jeff Layton , Marc Dionne , Jeffrey E Altman , v9fs-developer@lists.sourceforge.net, linux-afs@lists.infradead.org, linux-cachefs@redhat.com, ceph-devel@vger.kernel.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] netfs, 9p, afs, ceph: Use folios MIME-Version: 1.0 Content-ID: <1134870.1636647952.1@warthog.procyon.org.uk> Date: Thu, 11 Nov 2021 16:25:52 +0000 Message-ID: <1134871.1636647952@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 34CC110004CD X-Stat-Signature: k1oxjucte4ixzngkc9sa6t3cndtn6bu8 Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Q3yLNQh+; spf=none (imf07.hostedemail.com: domain of dhowells@redhat.com has no SPF policy when checking 170.10.129.124) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com X-HE-Tag: 1636647968-682453 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: Hi Linus, [Apologies for the late request, but I needed to wait for folios and 9p to be pulled into your tree so that I could get rid of the temporary merge I was using and then I had to wait for my branch to be retested before I could send this your way - and then Willy changed his mind about how to handle foliation of page_endio().] Anyway, could you consider pulling this please? It converts netfslib, 9p and afs to use folios. It also partially converts ceph so that it uses folios on the boundaries with netfslib. To help with this, a couple of folio helper functions are added in the first two patches. If you don't want to take the netfs/9p/afs/ceph bits, could you at least consider taking the folio helpers? Then they would be available to others. These patches don't touch fscache and cachefiles as I intend to remove all the code that deals with pages directly from there. Only nfs and cifs are using the old fscache I/O API now. The new API uses iov_iter instead. Thanks to Jeff Layton, Dominique Martinet and AuriStor for testing and retesting the patches. Thanks, David Changes ======= ver #5: - Got rid of the folio_endio bits again as Willy changed his mind and would rather I inlined the code directly instead. ver #4: - Detached and sent the afs symlink split patch separately. - Handed the 9p netfslibisation patch off to Dominique Martinet. - Added a patch to foliate page_endio(). - Fixed a bug in afs_redirty_page() whereby it didn't set the next page index in the loop and returned too early. - Simplified a check in v9fs_vfs_write_folio_locked()[4]. - Undid a change to afs_symlink_readpage()[4]. - Used offset_in_folio() in afs_write_end()[4]. - Rebased on 9p-folio merge upstream[5]. ver #3: - Rebased on upstream as folios have been pulled. - Imported a patch to convert 9p to netfslib from my fscache-remove-old-api branch[3]. - Foliated netfslib. ver #2: - Reorder the patches to put both non-folio afs patches to the front. - Use page_offset() rather than manual calculation[1]. - Fix folio_inode() to directly access the inode[2]. Link: https://lore.kernel.org/r/YST/0e92OdSH0zjg@casper.infradead.org/ [1] Link: https://lore.kernel.org/r/YST8OcVNy02Rivbm@casper.infradead.org/ [2] Link: https://lore.kernel.org/r/163551653404.1877519.12363794970541005441.stgit@warthog.procyon.org.uk/ [3] Link: https://lore.kernel.org/r/YYKa3bfQZxK5/wDN@casper.infradead.org/ [4] Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f89ce84bc33330607a782e47a8b19406ed109b15 [5] Link: https://lore.kernel.org/r/2408234.1628687271@warthog.procyon.org.uk/ # v0 Link: https://lore.kernel.org/r/162981147473.1901565.1455657509200944265.stgit@warthog.procyon.org.uk/ # v1 Link: https://lore.kernel.org/r/163005740700.2472992.12365214290752300378.stgit@warthog.procyon.org.uk/ # v2 Link: https://lore.kernel.org/r/163584174921.4023316.8927114426959755223.stgit@warthog.procyon.org.uk>/ # v3 Link: https://lore.kernel.org/r/163649323416.309189.4637503793406396694.stgit@warthog.procyon.org.uk/ # v4 Link: https://lore.kernel.org/r/163657847613.834781.7923681076643317435.stgit@warthog.procyon.org.uk/ # v5 --- The following changes since commit f89ce84bc33330607a782e47a8b19406ed109b15: Merge tag '9p-for-5.16-rc1' of git://github.com/martinetd/linux (2021-11-09 10:30:13 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/netfs-folio-20211111 for you to fetch changes up to 255ed63638da190e2485d32c0f696cd04d34fbc0: afs: Use folios in directory handling (2021-11-10 21:17:09 +0000) ---------------------------------------------------------------- netfs, 9p, afs and ceph (partial) foliation ---------------------------------------------------------------- David Howells (4): folio: Add a function to change the private data attached to a folio folio: Add a function to get the host inode for a folio netfs, 9p, afs, ceph: Use folios afs: Use folios in directory handling fs/9p/vfs_addr.c | 83 ++++++----- fs/9p/vfs_file.c | 20 +-- fs/afs/dir.c | 229 +++++++++++++----------------- fs/afs/dir_edit.c | 154 ++++++++++---------- fs/afs/file.c | 70 +++++---- fs/afs/internal.h | 46 +++--- fs/afs/write.c | 347 ++++++++++++++++++++++----------------------- fs/ceph/addr.c | 80 ++++++----- fs/netfs/read_helper.c | 165 ++++++++++----------- include/linux/netfs.h | 12 +- include/linux/pagemap.h | 33 +++++ include/trace/events/afs.h | 21 +-- mm/page-writeback.c | 2 +- 13 files changed, 636 insertions(+), 626 deletions(-)