From patchwork Tue Nov 9 21:27:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 12611063 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 AC6ECC433EF for ; Tue, 9 Nov 2021 21:27:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 945056108E for ; Tue, 9 Nov 2021 21:27:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245096AbhKIVaK (ORCPT ); Tue, 9 Nov 2021 16:30:10 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30336 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245089AbhKIVaK (ORCPT ); Tue, 9 Nov 2021 16:30:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1636493243; 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=7KsArju8ppySIcA4To0LdNtm7ws2ZxZFgR4knlX4mWQ=; b=VpY+LxIwxZFkg8d07t49LHOo2vzqpjUmPTyzlMWPWRXveMtnoQZLt5Cnteka0Fx5UanYm4 cRZ6R76sNVd4Aj5rfZSHpGFfDo3pjgHSzU0zh8VZ2N/c/c/oo3o0q4ylFvPtTC5R6Fm48I Le7eseYOBVr8thveP7v4FeBYm8V1oGI= 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-590--XC-8eGxM_298xtEp9_5EA-1; Tue, 09 Nov 2021 16:27:20 -0500 X-MC-Unique: -XC-8eGxM_298xtEp9_5EA-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0266F1808329; Tue, 9 Nov 2021 21:27:18 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.33.37.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id F0D7110016F4; Tue, 9 Nov 2021 21:27:14 +0000 (UTC) Subject: [PATCH v4 0/5] netfs, 9p, afs, ceph: Support folios, at least partially From: David Howells To: "Matthew Wilcox (Oracle)" Cc: kafs-testing@auristor.com, Ilya Dryomov , linux-cachefs@redhat.com, linux-afs@lists.infradead.org, ceph-devel@vger.kernel.org, Marc Dionne , Jeff Layton , Dominique Martinet , v9fs-developer@lists.sourceforge.net, dhowells@redhat.com, Jeff Layton , Ilya Dryomov , Dominique Martinet , linux-fsdevel@vger.kernel.org, linux-cachefs@redhat.com, v9fs-developer@lists.sourceforge.net, linux-afs@lists.infradead.org, ceph-devel@vger.kernel.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, devel@lists.orangefs.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Date: Tue, 09 Nov 2021 21:27:14 +0000 Message-ID: <163649323416.309189.4637503793406396694.stgit@warthog.procyon.org.uk> User-Agent: StGit/0.23 MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Here's a set of patches to convert netfs, 9p and afs to use folios and to provide sufficient conversion for ceph that it can continue to use the netfs library. Jeff Layton is working on fully converting ceph. This has been rebased on to the 9p merge in Linus's tree[5] so that it has access to both the 9p conversion to fscache and folios. Changes ======= 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]. David 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 Tested-by: kafs-testing@auristor.com --- David Howells (5): 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 folio: Add replacements for page_endio() 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 | 68 ++++---- 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 | 23 ++- include/trace/events/afs.h | 21 +-- mm/filemap.c | 64 ++++--- mm/page-writeback.c | 2 +- 14 files changed, 666 insertions(+), 648 deletions(-) Tested-by: Jeff Layton Tested-by: Dominique Martinet Tested-by: kafs-testing@auristor.com