1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (c) 2019 Hammerspace Inc
4 */
5
6#ifndef __NFS_SYSFS_H
7#define __NFS_SYSFS_H
8
9#define CONTAINER_ID_MAXLEN (64)
10
11struct nfs_netns_client {
12	struct kobject kobject;
13	struct kobject nfs_net_kobj;
14	struct net *net;
15	const char __rcu *identifier;
16};
17
18extern struct kobject *nfs_net_kobj;
19
20extern int nfs_sysfs_init(void);
21extern void nfs_sysfs_exit(void);
22
23void nfs_netns_sysfs_setup(struct nfs_net *netns, struct net *net);
24void nfs_netns_sysfs_destroy(struct nfs_net *netns);
25
26void nfs_sysfs_link_rpc_client(struct nfs_server *server,
27			struct rpc_clnt *clnt, const char *sysfs_prefix);
28void nfs_sysfs_add_server(struct nfs_server *s);
29void nfs_sysfs_move_server_to_sb(struct super_block *s);
30void nfs_sysfs_move_sb_to_server(struct nfs_server *s);
31void nfs_sysfs_remove_server(struct nfs_server *s);
32
33#endif
34