[PATCH 17/19] NFS: move nfs_kill_super to fs_context.c

From: Christoph Hellwig
Date: Wed Sep 13 2023 - 07:12:12 EST


nfs_kill_super is only used in fs_context, so move it there.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
fs/nfs/fs_context.c | 13 +++++++++++++
fs/nfs/internal.h | 1 -
fs/nfs/super.c | 16 ----------------
fs/nfs/sysfs.h | 2 ++
4 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/fs/nfs/fs_context.c b/fs/nfs/fs_context.c
index 853e8d609bb3bc..ee82e4cfb38bb5 100644
--- a/fs/nfs/fs_context.c
+++ b/fs/nfs/fs_context.c
@@ -21,8 +21,10 @@

#include <net/handshake.h>

+#include "fscache.h"
#include "nfs.h"
#include "internal.h"
+#include "sysfs.h"

#include "nfstrace.h"

@@ -1644,6 +1646,17 @@ static int nfs_init_fs_context(struct fs_context *fc)
return 0;
}

+static void nfs_kill_super(struct super_block *s)
+{
+ struct nfs_server *server = NFS_SB(s);
+
+ nfs_sysfs_move_sb_to_server(server);
+ generic_shutdown_super(s);
+
+ nfs_fscache_release_super_cookie(s);
+ nfs_free_server(server);
+}
+
struct file_system_type nfs_fs_type = {
.owner = THIS_MODULE,
.name = "nfs",
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index 9c9cf764f6000d..49d5b03176c02d 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -447,7 +447,6 @@ extern const struct super_operations nfs_sops;
bool nfs_auth_info_match(const struct nfs_auth_info *, rpc_authflavor_t);
int nfs_try_get_tree(struct fs_context *);
int nfs_get_tree_common(struct fs_context *);
-void nfs_kill_super(struct super_block *);

extern struct rpc_stat nfs_rpcstat;

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 89131e855e1393..5ba793e7f262d4 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1329,22 +1329,6 @@ int nfs_get_tree_common(struct fs_context *fc)
goto out;
}

-/*
- * Destroy an NFS superblock
- */
-void nfs_kill_super(struct super_block *s)
-{
- struct nfs_server *server = NFS_SB(s);
-
- nfs_sysfs_move_sb_to_server(server);
- generic_shutdown_super(s);
-
- nfs_fscache_release_super_cookie(s);
-
- nfs_free_server(server);
-}
-EXPORT_SYMBOL_GPL(nfs_kill_super);
-
#if IS_ENABLED(CONFIG_NFS_V4)

/*
diff --git a/fs/nfs/sysfs.h b/fs/nfs/sysfs.h
index c5d1990cade50a..44c8a1712149c2 100644
--- a/fs/nfs/sysfs.h
+++ b/fs/nfs/sysfs.h
@@ -8,6 +8,8 @@

#define CONTAINER_ID_MAXLEN (64)

+struct nfs_net;
+
struct nfs_netns_client {
struct kobject kobject;
struct kobject nfs_net_kobj;
--
2.39.2