linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: David Howells <dhowells@redhat.com>
Cc: viro@zeniv.linux.org.uk, Jeff Layton <jlayton@kernel.org>,
	linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 20/38] vfs: Convert nfsctl to fs_context
Date: Thu, 14 Mar 2019 13:29:12 -0400	[thread overview]
Message-ID: <20190314172912.GB1431@fieldses.org> (raw)
In-Reply-To: <155257989442.13720.9404403342947215402.stgit@warthog.procyon.org.uk>

Fine by me.

(Are these for 5.1 or 5.2?  Just wondering what to do with some other
ongoing work in the same area.  Any conflicts are probably trivial,
though, so no big deal either way.)

--b.

On Thu, Mar 14, 2019 at 04:11:34PM +0000, David Howells wrote:
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: "J. Bruce Fields" <bfields@fieldses.org>
> cc: Jeff Layton <jlayton@kernel.org>
> cc: linux-nfs@vger.kernel.org
> ---
> 
>  fs/nfsd/nfsctl.c |   33 ++++++++++++++++++++++++++-------
>  1 file changed, 26 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
> index f2feb2d11bae..d4eb4f34a94c 100644
> --- a/fs/nfsd/nfsctl.c
> +++ b/fs/nfsd/nfsctl.c
> @@ -7,6 +7,7 @@
>  #include <linux/slab.h>
>  #include <linux/namei.h>
>  #include <linux/ctype.h>
> +#include <linux/fs_context.h>
>  
>  #include <linux/sunrpc/svcsock.h>
>  #include <linux/lockd/lockd.h>
> @@ -1146,7 +1147,7 @@ static ssize_t write_v4_end_grace(struct file *file, char *buf, size_t size)
>   *	populating the filesystem.
>   */
>  
> -static int nfsd_fill_super(struct super_block * sb, void * data, int silent)
> +static int nfsd_fill_super(struct super_block *sb, struct fs_context *fc)
>  {
>  	static const struct tree_descr nfsd_files[] = {
>  		[NFSD_List] = {"exports", &exports_nfsd_operations, S_IRUGO},
> @@ -1176,15 +1177,33 @@ static int nfsd_fill_super(struct super_block * sb, void * data, int silent)
>  #endif
>  		/* last one */ {""}
>  	};
> -	get_net(sb->s_fs_info);
> +
>  	return simple_fill_super(sb, 0x6e667364, nfsd_files);
>  }
>  
> -static struct dentry *nfsd_mount(struct file_system_type *fs_type,
> -	int flags, const char *dev_name, void *data)
> +static int nfsd_fs_get_tree(struct fs_context *fc)
> +{
> +	fc->s_fs_info = get_net(fc->net_ns);
> +	return vfs_get_super(fc, vfs_get_keyed_super, nfsd_fill_super);
> +}
> +
> +static void nfsd_fs_free_fc(struct fs_context *fc)
> +{
> +	if (fc->s_fs_info)
> +		put_net(fc->s_fs_info);
> +}
> +
> +static const struct fs_context_operations nfsd_fs_context_ops = {
> +	.free		= nfsd_fs_free_fc,
> +	.get_tree	= nfsd_fs_get_tree,
> +};
> +
> +static int nfsd_init_fs_context(struct fs_context *fc)
>  {
> -	struct net *net = current->nsproxy->net_ns;
> -	return mount_ns(fs_type, flags, data, net, net->user_ns, nfsd_fill_super);
> +	put_user_ns(fc->user_ns);
> +	fc->user_ns = get_user_ns(fc->net_ns->user_ns);
> +	fc->ops = &nfsd_fs_context_ops;
> +	return 0;
>  }
>  
>  static void nfsd_umount(struct super_block *sb)
> @@ -1198,7 +1217,7 @@ static void nfsd_umount(struct super_block *sb)
>  static struct file_system_type nfsd_fs_type = {
>  	.owner		= THIS_MODULE,
>  	.name		= "nfsd",
> -	.mount		= nfsd_mount,
> +	.init_fs_context = nfsd_init_fs_context,
>  	.kill_sb	= nfsd_umount,
>  };
>  MODULE_ALIAS_FS("nfsd");

  reply	other threads:[~2019-03-14 17:29 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <155257972443.13720.11743171471060355965.stgit@warthog.procyon.org.uk>
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 ` [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-15  0:22   ` Andrew Donnellan
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: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 [this message]
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-20  6:57   ` Felipe Balbi
2019-03-20  7:42   ` David Howells
2019-03-20  8:34     ` Felipe Balbi
2019-03-14 16:13 ` [PATCH 32/38] vfs: Convert xenfs " 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=20190314172912.GB1431@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=dhowells@redhat.com \
    --cc=jlayton@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).