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