162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2019 Hammerspace Inc
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __NFS_SYSFS_H
762306a36Sopenharmony_ci#define __NFS_SYSFS_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define CONTAINER_ID_MAXLEN (64)
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistruct nfs_netns_client {
1262306a36Sopenharmony_ci	struct kobject kobject;
1362306a36Sopenharmony_ci	struct kobject nfs_net_kobj;
1462306a36Sopenharmony_ci	struct net *net;
1562306a36Sopenharmony_ci	const char __rcu *identifier;
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciextern struct kobject *nfs_net_kobj;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciextern int nfs_sysfs_init(void);
2162306a36Sopenharmony_ciextern void nfs_sysfs_exit(void);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_civoid nfs_netns_sysfs_setup(struct nfs_net *netns, struct net *net);
2462306a36Sopenharmony_civoid nfs_netns_sysfs_destroy(struct nfs_net *netns);
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_civoid nfs_sysfs_link_rpc_client(struct nfs_server *server,
2762306a36Sopenharmony_ci			struct rpc_clnt *clnt, const char *sysfs_prefix);
2862306a36Sopenharmony_civoid nfs_sysfs_add_server(struct nfs_server *s);
2962306a36Sopenharmony_civoid nfs_sysfs_move_server_to_sb(struct super_block *s);
3062306a36Sopenharmony_civoid nfs_sysfs_move_sb_to_server(struct nfs_server *s);
3162306a36Sopenharmony_civoid nfs_sysfs_remove_server(struct nfs_server *s);
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#endif
34