Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp4026435imc; Thu, 14 Mar 2019 10:30:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqzrX4+TmQX02te1pWvqaw8GFp823FoGGAtJ70ur6BxopHpx5mPWcfKsAV0GLYLaul90SHEB X-Received: by 2002:a63:d4f:: with SMTP id 15mr46339236pgn.162.1552584618661; Thu, 14 Mar 2019 10:30:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552584618; cv=none; d=google.com; s=arc-20160816; b=uMUCcxQlfoAdXArYeMgXoFU1F2xCy0eg5WKTIF7exUisP2PfiHstFUEND/us7AiXq2 /8w3vR5fbTB+EleKoG1gwq3mDceTYHcadhAN+WP+SR6zFL2L4Dc5Ci5t50fQ++Ca5MSs g1tu1DCGkkDsNe2tlTbCZrxX2ii1QFFvh69EzHULbTiElqB8e7RMJe4Rodpyy1cVfak1 SPz9pEXXtVimkDd/fbvnc/RyBrJDEgLhj0dmeir13dank1+3OGaFX3XDvD4u0RXfmflq 8wsUqzn81ypSGkHa87TWa/+ndHruxdxvIKR0ag1Am0YYm37QKHlvIlcgO+u5waoAhB+D gbnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=/vw7N2w9TUXxYAn8KEUELaID78DDTUo/SN/oVpfZjp4=; b=nHWqiAsHQwk44gcs5eZPti9p0HMoGbPqYzFCqEFCg0iGGItex6/KuJor55TDSMjkcf aDFPhNN2MohJ4RfEq1aQPmxvVNYGsoHFZXcGqqy6YYBHaRGSH2rg4BrNmhO9hxaQZzx5 D9ZcqOw3Ud0esTvhh7My4ZRrGaj6gYJPc2ddLqKzeMCiPOpnQgB7pJHquzfqdZCeDS7H G1e/0eTb0n9PFThjzsTG9wxXYh3akSlVw6Hm81lP4nJz1dF4Li/4YDKWlFpCiE58sZHx ZXux6DhUPhsRbepzMtOVusGOAfyg/lC5skhW1bYJdUeSAJ3XRTsCu5IeMWHr+05tswab hMdA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f5si12421634pgp.452.2019.03.14.10.30.03; Thu, 14 Mar 2019 10:30:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727159AbfCNR3N (ORCPT + 99 others); Thu, 14 Mar 2019 13:29:13 -0400 Received: from fieldses.org ([173.255.197.46]:60334 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726749AbfCNR3M (ORCPT ); Thu, 14 Mar 2019 13:29:12 -0400 Received: by fieldses.org (Postfix, from userid 2815) id 3B8C01C84; Thu, 14 Mar 2019 13:29:12 -0400 (EDT) Date: Thu, 14 Mar 2019 13:29:12 -0400 From: "J. Bruce Fields" To: David Howells Cc: viro@zeniv.linux.org.uk, Jeff Layton , 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 Message-ID: <20190314172912.GB1431@fieldses.org> References: <155257972443.13720.11743171471060355965.stgit@warthog.procyon.org.uk> <155257989442.13720.9404403342947215402.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <155257989442.13720.9404403342947215402.stgit@warthog.procyon.org.uk> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > cc: "J. Bruce Fields" > cc: Jeff Layton > 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 > #include > #include > +#include > > #include > #include > @@ -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");