All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: viro@zeniv.linux.org.uk
Cc: linux-fsdevel@vger.kernel.org, dhowells@redhat.com,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 18/38] vfs: Use sget_fc() for pseudo-filesystems
Date: Thu, 14 Mar 2019 16:11:19 +0000	[thread overview]
Message-ID: <155257987931.13720.4190474237735247604.stgit@warthog.procyon.org.uk> (raw)
In-Reply-To: <155257972443.13720.11743171471060355965.stgit@warthog.procyon.org.uk>

Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-fsdevel@vger.kernel.org
---

 fs/libfs.c |   25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/fs/libfs.c b/fs/libfs.c
index 9a15590b65da..f6710316de00 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -242,18 +242,12 @@ struct pseudo_fs_context {
 	unsigned long magic;
 };
 
-static int pseudo_fs_get_tree(struct fs_context *fc)
+static int pseudo_fs_fill_super(struct super_block *s, struct fs_context *fc)
 {
 	struct pseudo_fs_context *ctx = fc->fs_private;
-	struct super_block *s;
 	struct dentry *dentry;
 	struct inode *root;
 
-	s = sget_userns(fc->fs_type, NULL, set_anon_super, SB_KERNMOUNT|SB_NOUSER,
-			&init_user_ns, NULL);
-	if (IS_ERR(s))
-		return PTR_ERR(s);
-
 	s->s_maxbytes = MAX_LFS_FILESIZE;
 	s->s_blocksize = PAGE_SIZE;
 	s->s_blocksize_bits = PAGE_SHIFT;
@@ -263,7 +257,8 @@ static int pseudo_fs_get_tree(struct fs_context *fc)
 	s->s_time_gran = 1;
 	root = new_inode(s);
 	if (!root)
-		goto Enomem;
+		return -ENOMEM;
+
 	/*
 	 * since this is the first inode, make it number 1. New inodes created
 	 * after this must take care not to collide with it (by passing
@@ -275,18 +270,17 @@ static int pseudo_fs_get_tree(struct fs_context *fc)
 	dentry = __d_alloc(s, &ctx->d_name);
 	if (!dentry) {
 		iput(root);
-		goto Enomem;
+		return -ENOMEM;
 	}
 	d_instantiate(dentry, root);
 	s->s_root = dentry;
 	s->s_d_op = ctx->dops;
-	s->s_flags |= SB_ACTIVE;
-	fc->root = dget(s->s_root);
 	return 0;
+}
 
-Enomem:
-	deactivate_locked_super(s);
-	return -ENOMEM;
+static int pseudo_fs_get_tree(struct fs_context *fc)
+{
+	return vfs_get_super(fc, vfs_get_independent_super, pseudo_fs_fill_super);
 }
 
 static void pseudo_fs_free(struct fs_context *fc)
@@ -320,6 +314,9 @@ int vfs_init_pseudo_fs_context(struct fs_context *fc,
 	ctx->xattr = xattr;
 	ctx->dops = dops;
 	ctx->magic = magic;
+
+	fc->sb_flags = SB_KERNMOUNT | SB_NOUSER;
+	fc->global = true;
 	fc->fs_private = ctx;
 	fc->ops = &pseudo_fs_context_ops;
 	return 0;


  parent reply	other threads:[~2019-03-14 16:11 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-14 16:08 [PATCH 00/38] VFS: Convert trivial filesystems and more David Howells
2019-03-14 16:08 ` David Howells
2019-03-14 16:08 ` David Howells
2019-03-14 16:08 ` David Howells
2019-03-14 16:09 ` [PATCH 01/38] vfs: Provide sb->s_iflags settings in fs_context struct David Howells
2019-03-14 16:09 ` [PATCH 02/38] vfs: Provide a mount_pseudo-replacement for fs_context David Howells
2019-03-14 16:09 ` [PATCH 03/38] vfs: Convert aio to fs_context David Howells
2019-03-14 16:09 ` [PATCH 04/38] vfs: Convert anon_inodes " David Howells
2019-03-14 16:09 ` [PATCH 05/38] vfs: Convert bdev " David Howells
2019-03-14 16:09 ` [PATCH 06/38] vfs: Convert nsfs " David Howells
2019-03-14 16:09 ` [PATCH 07/38] vfs: Convert pipe " David Howells
2019-03-14 16:09 ` [PATCH 08/38] vfs: Convert zsmalloc " David Howells
2019-03-14 16:10 ` [PATCH 09/38] vfs: Convert sockfs " David Howells
2019-03-14 16:10 ` [PATCH 10/38] vfs: Convert dax " David Howells
2019-03-14 16:10   ` David Howells
2019-03-14 16:10 ` [PATCH 11/38] vfs: Convert drm " David Howells
2019-03-14 16:10 ` [PATCH 12/38] vfs: Convert ia64 perfmon " David Howells
2019-03-14 16:10 ` [PATCH 13/38] vfs: Convert cxl " David Howells
2019-03-14 16:10   ` David Howells
2019-03-15  0:22   ` Andrew Donnellan
2019-03-15  0:22     ` Andrew Donnellan
2019-03-22  7:42   ` Frederic Barrat
2019-03-22  7:42     ` Frederic Barrat
2019-03-14 16:10 ` [PATCH 14/38] vfs: Convert ocxlflash " David Howells
2019-03-19 14:53   ` Matthew R. Ochs
2019-03-14 16:10 ` [PATCH 15/38] vfs: Convert virtio_balloon " David Howells
2019-03-14 16:10 ` David Howells
2019-03-14 16:11 ` [PATCH 16/38] vfs: Convert btrfs_test " David Howells
2019-03-14 18:24   ` David Sterba
2019-03-14 16:11 ` [PATCH 17/38] vfs: Kill off mount_pseudo() and mount_pseudo_xattr() David Howells
2019-03-14 16:11 ` David Howells [this message]
2019-03-14 16:11 ` [PATCH 19/38] vfs: Convert binderfs to fs_context David Howells
2019-03-14 16:11 ` [PATCH 20/38] vfs: Convert nfsctl " David Howells
2019-03-14 17:29   ` J. Bruce Fields
2019-03-14 16:11 ` [PATCH 21/38] vfs: Convert rpc_pipefs " David Howells
2019-03-14 16:11 ` [PATCH 22/38] vfs: Kill off mount_ns() David Howells
2019-03-14 16:11 ` [PATCH 23/38] vfs: Kill sget_userns() David Howells
2019-03-14 16:12 ` [PATCH 24/38] vfs: Convert binfmt_misc to fs_context David Howells
2019-03-14 16:12 ` [PATCH 25/38] vfs: Convert configfs " David Howells
2019-03-14 16:12 ` [PATCH 26/38] vfs: Convert efivarfs " David Howells
2019-03-14 16:12 ` [PATCH 27/38] vfs: Convert fusectl " David Howells
2019-03-14 16:12 ` [PATCH 28/38] vfs: Convert qib_fs/ipathfs " David Howells
2019-03-14 16:12 ` [PATCH 29/38] vfs: Convert ibmasmfs " David Howells
2019-03-14 16:12 ` [PATCH 30/38] vfs: Convert oprofilefs " David Howells
2019-03-14 16:13 ` [PATCH 31/38] vfs: Convert gadgetfs " David Howells
2019-03-14 16:13   ` [31/38] " David Howells
2019-03-20  6:57   ` [PATCH 31/38] " Felipe Balbi
2019-03-20  6:57     ` [31/38] " Felipe Balbi
2019-03-20  7:42   ` [PATCH 31/38] " David Howells
2019-03-20  7:42     ` [31/38] " David Howells
2019-03-20  8:34     ` [PATCH 31/38] " Felipe Balbi
2019-03-20  8:34       ` [31/38] " Felipe Balbi
2019-03-14 16:13 ` [PATCH 32/38] vfs: Convert xenfs " David Howells
2019-03-14 16:13 ` David Howells
2019-03-14 16:13 ` [PATCH 33/38] vfs: Convert openpromfs " David Howells
2019-03-14 16:13 ` [PATCH 34/38] vfs: Convert apparmorfs " David Howells
2019-03-14 16:13 ` [PATCH 35/38] vfs: Convert securityfs " David Howells
2019-03-14 16:13 ` [PATCH 36/38] vfs: Convert selinuxfs " David Howells
2019-03-14 16:13 ` [PATCH 37/38] vfs: Convert smackfs " David Howells
2019-03-14 16:13 ` [PATCH 38/38] tmpfs, devtmpfs, ramfs, rootfs: Convert " David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=155257987931.13720.4190474237735247604.stgit@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.