From patchwork Tue Nov 2 08:29:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 12598131 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 0F0D9C433F5 for ; Tue, 2 Nov 2021 08:29:35 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9A6CB60C4B for ; Tue, 2 Nov 2021 08:29:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9A6CB60C4B 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 0EE636B0075; Tue, 2 Nov 2021 04:29:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 078276B00C4; Tue, 2 Nov 2021 04:29:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E5A4E6B00C5; Tue, 2 Nov 2021 04:29:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0129.hostedemail.com [216.40.44.129]) by kanga.kvack.org (Postfix) with ESMTP id D25CD6B0075 for ; Tue, 2 Nov 2021 04:29:33 -0400 (EDT) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 905B98249980 for ; Tue, 2 Nov 2021 08:29:33 +0000 (UTC) X-FDA: 78763316226.02.87B693D Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by imf01.hostedemail.com (Postfix) with ESMTP id 07822508CECB for ; Tue, 2 Nov 2021 08:29:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635841772; 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=AGQfQE+y23DXMjkdSWV0LFVA0+D/0EvWkXC0q0Pk3Q4=; b=O8aNkAg2edHIAGY2Lh+YB/iM17V6S1YnUKMfUmISpe5TnC6aVg/ruIVEO7xUfrnASRZSg+ cnDCRfOS42dRmMxkYYW5K6DkQlEHhwjtr36xm58TK6Dup9CiHbyaVJTy5G0m/FrL4MPyzr oM7roBbPyGW5hidoJtPUY5Pc0uTpjIQ= 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-231-Yh_WrSB2Pha7tYZorf2u2A-1; Tue, 02 Nov 2021 04:29:31 -0400 X-MC-Unique: Yh_WrSB2Pha7tYZorf2u2A-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 D23CE8066EF; Tue, 2 Nov 2021 08:29:28 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.33.36.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29A371017CE3; Tue, 2 Nov 2021 08:29:10 +0000 (UTC) Subject: [PATCH v3 0/6] netfs, 9p, afs, ceph: Support folios, at least partially From: David Howells To: "Matthew Wilcox (Oracle)" Cc: Ilya Dryomov , Jeff Layton , linux-cachefs@redhat.com, v9fs-developer@lists.sourceforge.net, linux-afs@lists.infradead.org, ceph-devel@vger.kernel.org, Marc Dionne , Dominique Martinet , Jeff Layton , 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, linux-nfs@vger.kernel.org, linux-cifs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs-developer@lists.sourceforge.net, devel@lists.orangefs.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Date: Tue, 02 Nov 2021 08:29:09 +0000 Message-ID: <163584174921.4023316.8927114426959755223.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 X-Stat-Signature: q3m6xxx6718ag3f6r7iff7z8mxanhy4s Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=O8aNkAg2; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf01.hostedemail.com: domain of dhowells@redhat.com has no SPF policy when checking 216.205.24.124) smtp.mailfrom=dhowells@redhat.com X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 07822508CECB X-HE-Tag: 1635841762-720337 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: 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 also contains a patch to split afs symlink readpage from afs file readpage to aid with foliation and a patch to convert 9p to netfslib to reduce the amount of foliation needed there. Changes ======= 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/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 --- David Howells (6): afs: Sort out symlink reading 9p: Convert to using the netfs helper lib to do reads and caching 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/Kconfig | 1 + fs/9p/cache.c | 137 --------------- fs/9p/cache.h | 97 +---------- fs/9p/v9fs.h | 9 + fs/9p/vfs_addr.c | 253 +++++++++++++-------------- fs/9p/vfs_file.c | 29 ++-- 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 | 346 ++++++++++++++++++------------------- 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 +- 17 files changed, 738 insertions(+), 946 deletions(-)