From patchwork Wed Mar 27 23:40:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 10874471 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DBBFC922 for ; Thu, 28 Mar 2019 05:43:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE8B528BCB for ; Thu, 28 Mar 2019 05:43:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ADE1028BF3; Thu, 28 Mar 2019 05:43:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AF5DE28BCB for ; Thu, 28 Mar 2019 05:43:10 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h9NmQ-0007Lp-G6; Thu, 28 Mar 2019 05:40:46 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h9I9z-000359-I0 for xen-devel@lists.xenproject.org; Wed, 27 Mar 2019 23:40:43 +0000 X-Inumbo-ID: bbcef03c-50e9-11e9-9acf-37a90adf0a3a Received: from mx1.redhat.com (unknown [209.132.183.28]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bbcef03c-50e9-11e9-9acf-37a90adf0a3a; Wed, 27 Mar 2019 23:40:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8DC9081F2F; Wed, 27 Mar 2019 23:40:38 +0000 (UTC) Received: from warthog.procyon.org.uk (ovpn-121-98.rdu2.redhat.com [10.10.121.98]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2B92419C5A; Wed, 27 Mar 2019 23:40:01 +0000 (UTC) From: David Howells To: viro@zeniv.linux.org.uk Date: Wed, 27 Mar 2019 23:40:00 +0000 Message-ID: <155372999953.7602.13784796495137723805.stgit@warthog.procyon.org.uk> User-Agent: StGit/unknown-version MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 27 Mar 2019 23:40:41 +0000 (UTC) X-Mailman-Approved-At: Thu, 28 Mar 2019 05:40:45 +0000 Subject: [Xen-devel] [RFC PATCH 00/68] VFS: Convert a bunch of filesystems to the new mount API X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Sergey Senozhatsky , "Rafael J. Wysocki" , dri-devel@lists.freedesktop.org, "J. Bruce Fields" , ceph-devel@vger.kernel.org, Mike Marshall , xen-devel@lists.xenproject.org, devel@lists.orangefs.org, Felipe Balbi , Uma Krishnan , "Manoj N. Kumar" , Joel Becker , Trond Myklebust , Mike Marciniszyn , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Arve =?utf-8?b?SGrDuG5uZXbDpWc=?= , Frederic Barrat , Martin Brandenburg , linux-ia64@vger.kernel.org, David Airlie , virtualization@lists.linux-foundation.org, Keith Busch , Masahiro Yamada , Jens Axboe , Christian Brauner , Matthew Garrett , Stefano Stabellini , Paul Moore , Andreas Schwab , Anton Vorontsov , Hugh Dickins , Christoph Hellwig , Yonghong Song , Todd Kjos , Felipe Balbi , selinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Casey Schaufler , Boris Ostrovsky , Nitin Gupta , Martijn Coenen , Tony Luck , Boris Brezillon , Dennis Dalessandro , linux-nvdimm@lists.01.org, "Yan, Zheng" , Minchan Kim , "Eric W. Biederman" , Martin Schwidefsky , Martin KaFai Lau , Song Liu , linux-efi@vger.kernel.org, linux-aio@kvack.org, Jason Wang , Heiko Carstens , Alexei Starovoitov , Chris Mason , linux-mtd@lists.infradead.org, Joel Fernandes , Dave Jiang , Daniel Borkmann , Miklos Szeredi , linux-rdma@vger.kernel.org, coda@cs.cmu.edu, Andrew Price , Ilya Dryomov , Stephen Smalley , Fenghua Yu , Robert Richter , Kees Cook , Arnd Bergmann , "James E.J. Bottomley" , Steven Rostedt , Eric Paris , Dan Williams , Christian Brauner , Jan Harkes , linux-nfs@vger.kernel.org, "Martin K. Petersen" , Ard Biesheuvel , linux-s390@vger.kernel.org, Jeff Layton , Jeremy Kerr , Andrew Donnellan , Colin Cross , linux-fsdevel@vger.kernel.org, bpf@vger.kernel.org, Brian Norris , Anna Schumaker , "Michael S. Tsirkin" , dhowells@redhat.com, linux-mm@kvack.org, devel@driverdev.osuosl.org, Sage Weil , Nicolas Pitre , Richard Weinberger , cluster-devel@redhat.com, Marek Vasut , oprofile-list@lists.sf.net, squashfs-devel@lists.sourceforge.net, "Matthew R. Ochs" , apparmor@lists.ubuntu.com, Josef Bacik , =?utf-8?q?Micha=C5=82?= Nazarewicz , linux-block@vger.kernel.org, David Sterba , Juergen Gross , John Johansen , linux-scsi@vger.kernel.org, Artem Bityutskiy , netdev@vger.kernel.org, Adrian Hunter , linux-security-module@vger.kernel.org, Benjamin LaHaise , Daniel Vetter , Vishal Verma , Phillip Lougher , David Woodhouse , linux-btrfs@vger.kernel.org Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Hi Al, Here's a set of patches that converts a bunch (but not yet all!) to the new mount API. To this end, it makes the following changes: (1) Provides a convenience member in struct fs_context that is OR'd into sb->s_iflags by sget_fc(). (2) Provides a convenience helper function, vfs_init_pseudo_fs_context(), for doing most of the work in mounting a pseudo filesystem. (3) Provides a convenience helper function, vfs_get_block_super(), for doing the work in setting up a block-based superblock. (4) Improves the handling of fd-type parameters. (5) Moves some of the subtype handling int fuse. (6) Provides a convenience helper function, vfs_get_mtd_super(), for doing the work in setting up an MTD device-based superblock. (7) Kills off mount_pseudo(), mount_pseudo_xattr(), mount_ns(), sget_userns(), mount_mtd(), mount_single(). (8) Converts a slew of filesystems to use the mount API. (9) Fixes a bug in hypfs. The patches can be found here also: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git on branch: mount-api-viro David --- Andrew Price (1): gfs2: Convert gfs2 to fs_context David Howells (66): vfs: Update mount API docs vfs: Fix refcounting of filenames in fs_parser vfs: Provide sb->s_iflags settings in fs_context struct vfs: Provide a mount_pseudo-replacement for the new mount API vfs: Convert aio to use the new mount API vfs: Convert anon_inodes to use the new mount API vfs: Convert bdev to use the new mount API vfs: Convert nsfs to use the new mount API vfs: Convert pipe to use the new mount API vfs: Convert zsmalloc to use the new mount API vfs: Convert sockfs to use the new mount API vfs: Convert dax to use the new mount API vfs: Convert drm to use the new mount API vfs: Convert ia64 perfmon to use the new mount API vfs: Convert cxl to use the new mount API vfs: Convert ocxlflash to use the new mount API vfs: Convert virtio_balloon to use the new mount API vfs: Convert btrfs_test to use the new mount API vfs: Kill off mount_pseudo() and mount_pseudo_xattr() vfs: Use sget_fc() for pseudo-filesystems vfs: Convert binderfs to use the new mount API vfs: Convert nfsctl to use the new mount API vfs: Convert rpc_pipefs to use the new mount API vfs: Kill mount_ns() vfs: Kill sget_userns() vfs: Convert binfmt_misc to use the new mount API vfs: Convert configfs to use the new mount API vfs: Convert efivarfs to use the new mount API vfs: Convert fusectl to use the new mount API vfs: Convert qib_fs/ipathfs to use the new mount API vfs: Convert ibmasmfs to use the new mount API vfs: Convert oprofilefs to use the new mount API vfs: Convert gadgetfs to use the new mount API vfs: Convert xenfs to use the new mount API vfs: Convert openpromfs to use the new mount API vfs: Convert apparmorfs to use the new mount API vfs: Convert securityfs to use the new mount API vfs: Convert selinuxfs to use the new mount API vfs: Convert smackfs to use the new mount API vfs: Convert ramfs, shmem, tmpfs, devtmpfs, rootfs to use the new mount API vfs: Create fs_context-aware mount_bdev() replacement vfs: Make fs_parse() handle fs_param_is_fd-type params better vfs: Convert fuse to use the new mount API vfs: Move the subtype parameter into fuse mtd: Provide fs_context-aware mount_mtd() replacement vfs: Convert romfs to use the new mount API vfs: Convert cramfs to use the new mount API vfs: Convert jffs2 to use the new mount API mtd: Kill mount_mtd() vfs: Convert squashfs to use the new mount API vfs: Convert ceph to use the new mount API vfs: Convert functionfs to use the new mount API vfs: Add a single-or-reconfig keying to vfs_get_super() vfs: Convert debugfs to use the new mount API vfs: Convert tracefs to use the new mount API vfs: Convert pstore to use the new mount API hypfs: Fix error number left in struct pointer member vfs: Convert hypfs to use the new mount API vfs: Convert spufs to use the new mount API vfs: Kill mount_single() vfs: Convert coda to use the new mount API vfs: Convert autofs to use the new mount API vfs: Convert devpts to use the new mount API vfs: Convert bpf to use the new mount API vfs: Convert ubifs to use the new mount API vfs: Convert orangefs to use the new mount API Masahiro Yamada (1): kbuild: skip sub-make for in-tree build with GNU Make 4.x Documentation/filesystems/mount_api.txt | 367 ++++++++------- Documentation/filesystems/vfs.txt | 4 Makefile | 31 + arch/ia64/kernel/perfmon.c | 14 - arch/powerpc/platforms/cell/spufs/inode.c | 207 +++++---- arch/s390/hypfs/inode.c | 137 +++--- drivers/android/binderfs.c | 173 ++++--- drivers/base/devtmpfs.c | 16 - drivers/block/rbd.c | 363 ++++++++------- drivers/dax/super.c | 13 - drivers/gpu/drm/drm_drv.c | 14 - drivers/infiniband/hw/qib/qib_fs.c | 26 + drivers/misc/cxl/api.c | 10 drivers/misc/ibmasm/ibmasmfs.c | 21 + drivers/mtd/mtdcore.h | 1 drivers/mtd/mtdsuper.c | 181 ++++---- drivers/oprofile/oprofilefs.c | 20 + drivers/scsi/cxlflash/ocxl_hw.c | 21 - drivers/usb/gadget/function/f_fs.c | 233 +++++----- drivers/usb/gadget/legacy/inode.c | 21 + drivers/virtio/virtio_balloon.c | 19 - drivers/xen/xenfs/super.c | 21 + fs/aio.c | 15 - fs/anon_inodes.c | 12 fs/autofs/autofs_i.h | 13 - fs/autofs/init.c | 9 fs/autofs/inode.c | 429 ++++++++++-------- fs/binfmt_misc.c | 20 + fs/block_dev.c | 14 - fs/btrfs/tests/btrfs-tests.c | 13 - fs/ceph/cache.c | 9 fs/ceph/cache.h | 5 fs/ceph/super.c | 697 ++++++++++++++--------------- fs/ceph/super.h | 1 fs/coda/inode.c | 171 +++++-- fs/configfs/mount.c | 20 + fs/cramfs/inode.c | 69 ++- fs/debugfs/inode.c | 186 ++++---- fs/devpts/inode.c | 265 +++++------ fs/efivarfs/super.c | 20 + fs/fs_context.c | 16 - fs/fs_parser.c | 18 + fs/fuse/control.c | 20 + fs/fuse/inode.c | 291 +++++++----- fs/gfs2/incore.h | 8 fs/gfs2/ops_fstype.c | 495 ++++++++++++++++----- fs/gfs2/super.c | 335 -------------- fs/gfs2/super.h | 3 fs/jffs2/fs.c | 21 - fs/jffs2/os-linux.h | 4 fs/jffs2/super.c | 172 +++---- fs/libfs.c | 91 +++- fs/nfsd/nfsctl.c | 33 + fs/nsfs.c | 13 - fs/openpromfs/inode.c | 20 + fs/orangefs/orangefs-kernel.h | 8 fs/orangefs/orangefs-mod.c | 3 fs/orangefs/super.c | 186 ++++---- fs/pipe.c | 12 fs/pstore/inode.c | 109 +++-- fs/ramfs/inode.c | 104 +++- fs/romfs/super.c | 46 +- fs/squashfs/super.c | 100 ++-- fs/super.c | 301 ++++++------- fs/tracefs/inode.c | 180 +++---- fs/ubifs/super.c | 447 ++++++++----------- include/linux/ceph/ceph_debug.h | 1 include/linux/ceph/libceph.h | 17 + include/linux/fs.h | 24 - include/linux/fs_context.h | 20 + include/linux/mtd/super.h | 6 include/linux/ramfs.h | 6 include/linux/shmem_fs.h | 4 init/do_mounts.c | 12 kernel/bpf/inode.c | 92 ++-- mm/shmem.c | 396 +++++++++++----- mm/zsmalloc.c | 19 - net/ceph/ceph_common.c | 410 +++++++---------- net/socket.c | 14 - net/sunrpc/rpc_pipe.c | 34 + security/apparmor/apparmorfs.c | 20 + security/inode.c | 21 + security/selinux/selinuxfs.c | 20 + security/smack/smackfs.c | 34 + 84 files changed, 4257 insertions(+), 3810 deletions(-)