xref: /openbmc/linux/fs/nfs/nfs.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2ab7017a3SBryan Schumaker /*
3ab7017a3SBryan Schumaker  * Copyright (c) 2012 Netapp, Inc. All rights reserved.
4ab7017a3SBryan Schumaker  *
5ab7017a3SBryan Schumaker  * Function and structures exported by the NFS module
6ab7017a3SBryan Schumaker  * for use by NFS version-specific modules.
7ab7017a3SBryan Schumaker  */
8ab7017a3SBryan Schumaker #ifndef __LINUX_INTERNAL_NFS_H
9ab7017a3SBryan Schumaker #define __LINUX_INTERNAL_NFS_H
10ab7017a3SBryan Schumaker 
11ab7017a3SBryan Schumaker #include <linux/fs.h>
12ab7017a3SBryan Schumaker #include <linux/sunrpc/sched.h>
13ab7017a3SBryan Schumaker #include <linux/nfs_xdr.h>
14ab7017a3SBryan Schumaker 
15ab7017a3SBryan Schumaker struct nfs_subversion {
16ab7017a3SBryan Schumaker 	struct module *owner;	/* THIS_MODULE pointer */
17ab7017a3SBryan Schumaker 	struct file_system_type *nfs_fs;	/* NFS filesystem type */
18ab7017a3SBryan Schumaker 	const struct rpc_version *rpc_vers;	/* NFS version information */
19ab7017a3SBryan Schumaker 	const struct nfs_rpc_ops *rpc_ops;	/* NFS operations */
206a74490dSBryan Schumaker 	const struct super_operations *sops;	/* NFS Super operations */
216a74490dSBryan Schumaker 	const struct xattr_handler **xattr;	/* NFS xattr handlers */
22ab7017a3SBryan Schumaker 	struct list_head list;		/* List of NFS versions */
23ab7017a3SBryan Schumaker };
24ab7017a3SBryan Schumaker 
25ab7017a3SBryan Schumaker struct nfs_subversion *get_nfs_version(unsigned int);
26ab7017a3SBryan Schumaker void put_nfs_version(struct nfs_subversion *);
27ab7017a3SBryan Schumaker void register_nfs_version(struct nfs_subversion *);
28ab7017a3SBryan Schumaker void unregister_nfs_version(struct nfs_subversion *);
29ab7017a3SBryan Schumaker 
30ab7017a3SBryan Schumaker #endif /* __LINUX_INTERNAL_NFS_H */
31