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 23/38] vfs: Kill sget_userns()
Date: Thu, 14 Mar 2019 16:11:58 +0000	[thread overview]
Message-ID: <155257991808.13720.8342620040418811207.stgit@warthog.procyon.org.uk> (raw)
In-Reply-To: <155257972443.13720.11743171471060355965.stgit@warthog.procyon.org.uk>

Kill sget_userns(), folding it into sget() as that's the only remaining
user.

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

 fs/super.c         |   61 +++++++++++++++++-----------------------------------
 include/linux/fs.h |    5 ----
 2 files changed, 20 insertions(+), 46 deletions(-)

diff --git a/fs/super.c b/fs/super.c
index 3b5275298f7c..f27ee08fb26f 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -566,24 +566,35 @@ struct super_block *sget_fc(struct fs_context *fc,
 EXPORT_SYMBOL(sget_fc);
 
 /**
- *	sget_userns -	find or create a superblock
- *	@type:	filesystem type superblock should belong to
- *	@test:	comparison callback
- *	@set:	setup callback
- *	@flags:	mount flags
- *	@user_ns: User namespace for the super_block
- *	@data:	argument to each of them
+ *	sget	-	find or create a superblock
+ *	@type:	  filesystem type superblock should belong to
+ *	@test:	  comparison callback
+ *	@set:	  setup callback
+ *	@flags:	  mount flags
+ *	@data:	  argument to each of them
  */
-struct super_block *sget_userns(struct file_system_type *type,
+struct super_block *sget(struct file_system_type *type,
 			int (*test)(struct super_block *,void *),
 			int (*set)(struct super_block *,void *),
-			int flags, struct user_namespace *user_ns,
+			int flags,
 			void *data)
 {
+	struct user_namespace *user_ns = current_user_ns();
 	struct super_block *s = NULL;
 	struct super_block *old;
 	int err;
 
+	/* We don't yet pass the user namespace of the parent
+	 * mount through to here so always use &init_user_ns
+	 * until that changes.
+	 */
+	if (flags & SB_SUBMOUNT)
+		user_ns = &init_user_ns;
+
+	/* Ensure the requestor has permissions over the target filesystem */
+	if (!(flags & (SB_KERNMOUNT|SB_SUBMOUNT)) && !ns_capable(user_ns, CAP_SYS_ADMIN))
+		return ERR_PTR(-EPERM);
+
 	if (!(flags & (SB_KERNMOUNT|SB_SUBMOUNT)) &&
 	    !(type->fs_flags & FS_USERNS_MOUNT) &&
 	    !capable(CAP_SYS_ADMIN))
@@ -629,38 +640,6 @@ struct super_block *sget_userns(struct file_system_type *type,
 	return s;
 }
 
-EXPORT_SYMBOL(sget_userns);
-
-/**
- *	sget	-	find or create a superblock
- *	@type:	  filesystem type superblock should belong to
- *	@test:	  comparison callback
- *	@set:	  setup callback
- *	@flags:	  mount flags
- *	@data:	  argument to each of them
- */
-struct super_block *sget(struct file_system_type *type,
-			int (*test)(struct super_block *,void *),
-			int (*set)(struct super_block *,void *),
-			int flags,
-			void *data)
-{
-	struct user_namespace *user_ns = current_user_ns();
-
-	/* We don't yet pass the user namespace of the parent
-	 * mount through to here so always use &init_user_ns
-	 * until that changes.
-	 */
-	if (flags & SB_SUBMOUNT)
-		user_ns = &init_user_ns;
-
-	/* Ensure the requestor has permissions over the target filesystem */
-	if (!(flags & (SB_KERNMOUNT|SB_SUBMOUNT)) && !ns_capable(user_ns, CAP_SYS_ADMIN))
-		return ERR_PTR(-EPERM);
-
-	return sget_userns(type, test, set, flags, user_ns, data);
-}
-
 EXPORT_SYMBOL(sget);
 
 void drop_super(struct super_block *sb)
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 20c15794c2ac..646f4ccaeee9 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2233,11 +2233,6 @@ void free_anon_bdev(dev_t);
 struct super_block *sget_fc(struct fs_context *fc,
 			    int (*test)(struct super_block *, struct fs_context *),
 			    int (*set)(struct super_block *, struct fs_context *));
-struct super_block *sget_userns(struct file_system_type *type,
-			int (*test)(struct super_block *,void *),
-			int (*set)(struct super_block *,void *),
-			int flags, struct user_namespace *user_ns,
-			void *data);
 struct super_block *sget(struct file_system_type *type,
 			int (*test)(struct super_block *,void *),
 			int (*set)(struct super_block *,void *),


  parent reply	other threads:[~2019-03-14 16:12 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 ` [PATCH 18/38] vfs: Use sget_fc() for pseudo-filesystems David Howells
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 ` David Howells [this message]
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=155257991808.13720.8342620040418811207.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.