blob: 5ba00610aede074400a5c3d02f310099833a797d [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Bryan Schumakerab7017a2012-07-30 16:05:16 -04002/*
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 */
Bryan Schumaker6a744902012-07-30 16:05:20 -040020 const struct super_operations *sops; /* NFS Super operations */
21 const struct xattr_handler **xattr; /* NFS xattr handlers */
Bryan Schumakerab7017a2012-07-30 16:05:16 -040022 struct list_head list; /* List of NFS versions */
23};
24
Bryan Schumakerab7017a2012-07-30 16:05:16 -040025struct 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 */