Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp2479323ybe; Tue, 3 Sep 2019 13:34:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqwT7R90Kr4vC3Bjld/ovbNxrtMKUWgdJ6RN0Eoyq/W1fmEJWYxVSYs4dcMr0wK7KqZexI61 X-Received: by 2002:a62:e808:: with SMTP id c8mr783942pfi.169.1567542877080; Tue, 03 Sep 2019 13:34:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567542877; cv=none; d=google.com; s=arc-20160816; b=UaMs7gxkjGG6FlfhGfRAJtByb62EnTOmZ1r0mFmQepfbkL9bNI0H2m0lvM3uaDi+pY F3YG4IMMtJQc04ny1PV4VBnluGeCHqNGOxiMF711n9pE4KEc0BxmFMcVanJ1V5HqzMnM GocxxmtVQftXSN9xLb5so2Jp1XeGVPSdwi9ZX/9wNI+RNJ8Se7vvbLnEPVkM/QKc0GXy 4p4X+0moSNtZdwSrEONKZB6u84nL7W4widK/kh4h0NuBTPGAzJZV61xQY1fGMsmRZoeE 9N0WsVF2VCjy7sKTYORfigg8PdxZ89kU03vQQD0eUAkk2CdqcxHNZ6iA/tl7EHEve4ve lVTg== 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=U6v8GD+l4Cn5Kk6hz6LPazlWSObam+Rsh7gwEd/oFmhbv/RPU4xP1i9nRfDpXJsR5k 1N+eM2IXMZNmQCpSr4mYDcraJAAjiRFZtEXLIP4sbJwkSLhs9bWgH9VOeNpWOB4C4rV2 cUkpFPP4PUXDaJtFTgIycROPUAr+rdLoNX+hf6oadPmsAhKgn84A226tqmXBHfZ68oTc mQQ+wffe6lxEz0EnwBKY0Od7j3bl0LIoG7Nhib5vCBEElvXZ6yILClRVuwsGvMqEeFRS 73CcMIcGYB/UgpXfsamr6JYs+B6i9wGXur2t09ayqvwOmysKRTBw19oUTPSqh7/xIwwX c1jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-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 f2si15483823pgl.74.2019.09.03.13.34.23; Tue, 03 Sep 2019 13:34:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-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-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-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 S1728230AbfICUdg (ORCPT + 99 others); Tue, 3 Sep 2019 16:33:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43762 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726983AbfICUcR (ORCPT ); Tue, 3 Sep 2019 16:32:17 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2557687521E; Tue, 3 Sep 2019 20:32:17 +0000 (UTC) Received: from coeurl.usersys.redhat.com (ovpn-121-35.rdu2.redhat.com [10.10.121.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id E07906012A; Tue, 3 Sep 2019 20:32:16 +0000 (UTC) Received: by coeurl.usersys.redhat.com (Postfix, from userid 1000) id 9E52920C3B; Tue, 3 Sep 2019 16:32:15 -0400 (EDT) From: Scott Mayhew To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.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 v2 10/26] nfs: merge xdev and remote file_system_type Date: Tue, 3 Sep 2019 16:31:59 -0400 Message-Id: <20190903203215.9157-11-smayhew@redhat.com> In-Reply-To: <20190903203215.9157-1-smayhew@redhat.com> References: <20190903203215.9157-1-smayhew@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.68]); Tue, 03 Sep 2019 20:32:17 +0000 (UTC) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@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