Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp1099405ybe; Wed, 11 Sep 2019 09:20:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqxSAiw86cmMliMMWZe0GzJSmF4UQmPR24HE/RnHB+VN4ZKw+CT/d1j6wzRGhYAmVWOMgLJS X-Received: by 2002:a17:907:2065:: with SMTP id qp5mr29968760ejb.151.1568218850201; Wed, 11 Sep 2019 09:20:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568218850; cv=none; d=google.com; s=arc-20160816; b=QLjcqrda/KlL9sDpfx29FarFz2OSx+5iPni1QsCaoq/vPISofR92yLIUwQgGkr8DWQ n3g4oAU99BhlpuSxfpwUcXH9eAuxP/RmK0fO2pfNl+9UwSZbzyiVbiwiIkNr/jwOG5NA 1XyOp6O04Mumqm/Z/FmLwofv4iToT0ha1kFbCYX/OFFo4EFOK21A+fwneicv2bxcmi5b RtI69JP8PtcGQeuiOjEu7Bbh7kI5ti4bv7KWCZfx+EuKEe8RBEoHv1vwf38v4C60wIW/ 9aHEMh+FyvIvChXc0X7NG1TnnV9LFDaDvqTxDslh1bxslTFTzQHRoAXHam00HyF0+Nvj O0Eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=DBcZdo9lQL+VfP5KVW7l4vWKyr/yccxuUd0H+wu7Vgs=; b=MAFKby4GF4nIzSAm50hprjHZYqYt2S3JPHFLu9aG+B6tlMJPI2rvJFJ4om8mT3tAoX DUX7j2MAZ6IXNnXI2yNGV6yVqng3z1iwogw440UhTZU9tGgMchXoqldebpkAD8Uv6Pn4 Hqy0dW6laiV9x2Iu3hCTM6xR98CdckxCZAp/eAi6oRy5HgmUG4CrDW7SljKLcjed9CH8 tgDwBXwkSQQuuZmybrAVaYrCHZWPXMSgFqI6oYICR9f3+fnDZMGm/yLkgIr4wqPssvr6 xu6LbJI0pmGh3kYwj1Osd2LV4sAxm65HoAorLWMhRCuZ9RaTM3IGhOz3Slj/dm+l9G/v Rung== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h17si11397058ejf.16.2019.09.11.09.20.26; Wed, 11 Sep 2019 09:20:50 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729344AbfIKQRs (ORCPT + 99 others); Wed, 11 Sep 2019 12:17:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:3650 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728986AbfIKQQX (ORCPT ); Wed, 11 Sep 2019 12:16:23 -0400 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 38931308219E; Wed, 11 Sep 2019 16:16:23 +0000 (UTC) Received: from coeurl.usersys.redhat.com (ovpn-122-52.rdu2.redhat.com [10.10.122.52]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0949A450E; Wed, 11 Sep 2019 16:16:23 +0000 (UTC) Received: by coeurl.usersys.redhat.com (Postfix, from userid 1000) id 33CA420C2F; Wed, 11 Sep 2019 12:16:22 -0400 (EDT) From: Scott Mayhew To: anna.schumaker@netapp.com, trond.myklebust@hammerspace.com Cc: dhowells@redhat.com, viro@zeniv.linux.org.uk, linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 10/26] nfs: merge xdev and remote file_system_type Date: Wed, 11 Sep 2019 12:16:05 -0400 Message-Id: <20190911161621.19832-11-smayhew@redhat.com> In-Reply-To: <20190911161621.19832-1-smayhew@redhat.com> References: <20190911161621.19832-1-smayhew@redhat.com> 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.47]); Wed, 11 Sep 2019 16:16:23 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Al Viro they are identical now... Reviewed-by: David Howells Signed-off-by: Al Viro --- fs/nfs/internal.h | 2 +- fs/nfs/namespace.c | 2 +- fs/nfs/nfs4super.c | 22 +--------------------- fs/nfs/super.c | 14 ++++++++------ 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 3334d0f3ecf9..ac3478827a83 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -396,7 +396,7 @@ extern int nfs_wait_atomic_killable(atomic_t *p, unsigned int mode); /* super.c */ extern const struct super_operations nfs_sops; extern struct file_system_type nfs_fs_type; -extern struct file_system_type nfs_xdev_fs_type; +extern struct file_system_type nfs_prepared_fs_type; #if IS_ENABLED(CONFIG_NFS_V4) extern struct file_system_type nfs4_referral_fs_type; #endif diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index 0d0587ed7d94..970f92a860ed 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c @@ -254,7 +254,7 @@ struct vfsmount *nfs_do_submount(struct dentry *dentry, struct nfs_fh *fh, if (IS_ERR(devname)) mnt = ERR_CAST(devname); else - mnt = vfs_submount(dentry, &nfs_xdev_fs_type, devname, &mount_info); + mnt = vfs_submount(dentry, &nfs_prepared_fs_type, devname, &mount_info); if (mount_info.server) nfs_free_server(mount_info.server); diff --git a/fs/nfs/nfs4super.c b/fs/nfs/nfs4super.c index 83bca2ea566c..5bca30f704e4 100644 --- a/fs/nfs/nfs4super.c +++ b/fs/nfs/nfs4super.c @@ -18,19 +18,9 @@ static int nfs4_write_inode(struct inode *inode, struct writeback_control *wbc); static void nfs4_evict_inode(struct inode *inode); -static struct dentry *nfs4_remote_mount(struct file_system_type *fs_type, - int flags, const char *dev_name, void *raw_data); static struct dentry *nfs4_referral_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *raw_data); -static struct file_system_type nfs4_remote_fs_type = { - .owner = THIS_MODULE, - .name = "nfs4", - .mount = nfs4_remote_mount, - .kill_sb = nfs_kill_super, - .fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA, -}; - struct file_system_type nfs4_referral_fs_type = { .owner = THIS_MODULE, .name = "nfs4", @@ -91,16 +81,6 @@ static void nfs4_evict_inode(struct inode *inode) nfs_clear_inode(inode); } -/* - * Get the superblock for the NFS4 root partition - */ -static struct dentry * -nfs4_remote_mount(struct file_system_type *fs_type, int flags, - const char *dev_name, void *info) -{ - return nfs_fs_mount_common(flags, dev_name, info); -} - struct nfs_referral_count { struct list_head list; const struct task_struct *task; @@ -194,7 +174,7 @@ static struct dentry *do_nfs4_mount(struct nfs_server *server, int flags, else snprintf(root_devname, len, "%s:/", hostname); info->server = server; - root_mnt = vfs_kern_mount(&nfs4_remote_fs_type, flags, root_devname, info); + root_mnt = vfs_kern_mount(&nfs_prepared_fs_type, flags, root_devname, info); if (info->server) nfs_free_server(info->server); info->server = NULL; diff --git a/fs/nfs/super.c b/fs/nfs/super.c index ca6295945880..d80992d2b6fe 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -293,7 +293,7 @@ static match_table_t nfs_vers_tokens = { { Opt_vers_err, NULL } }; -static struct dentry *nfs_xdev_mount(struct file_system_type *fs_type, +static struct dentry *nfs_prepared_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *raw_data); struct file_system_type nfs_fs_type = { @@ -306,13 +306,14 @@ struct file_system_type nfs_fs_type = { MODULE_ALIAS_FS("nfs"); EXPORT_SYMBOL_GPL(nfs_fs_type); -struct file_system_type nfs_xdev_fs_type = { +struct file_system_type nfs_prepared_fs_type = { .owner = THIS_MODULE, .name = "nfs", - .mount = nfs_xdev_mount, + .mount = nfs_prepared_mount, .kill_sb = nfs_kill_super, .fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA, }; +EXPORT_SYMBOL_GPL(nfs_prepared_fs_type); const struct super_operations nfs_sops = { .alloc_inode = nfs_alloc_inode, @@ -2766,11 +2767,12 @@ void nfs_kill_super(struct super_block *s) EXPORT_SYMBOL_GPL(nfs_kill_super); /* - * Clone an NFS2/3/4 server record on xdev traversal (FSID-change) + * Internal use only: mount_info is already set up by caller. + * Used for mountpoint crossings and for nfs4 root. */ static struct dentry * -nfs_xdev_mount(struct file_system_type *fs_type, int flags, - const char *dev_name, void *raw_data) +nfs_prepared_mount(struct file_system_type *fs_type, int flags, + const char *dev_name, void *raw_data) { return nfs_fs_mount_common(flags, dev_name, raw_data); } -- 2.17.2