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