![Bryan Schumaker](/assets/img/avatar_default.png)
This patch adds in the code to track multiple versions of the NFS protocol. I created default structures for v2, v3 and v4 so that each version can continue to work while I convert them into kernel modules. I also removed the const parameter from the rpc_version array so that I can change it at runtime. Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
73 lines
1.6 KiB
C
73 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2012 Netapp, Inc. All rights reserved.
|
|
*
|
|
* Function and structures exported by the NFS module
|
|
* for use by NFS version-specific modules.
|
|
*/
|
|
#ifndef __LINUX_INTERNAL_NFS_H
|
|
#define __LINUX_INTERNAL_NFS_H
|
|
|
|
#include <linux/fs.h>
|
|
#include <linux/sunrpc/sched.h>
|
|
#include <linux/nfs_xdr.h>
|
|
|
|
struct nfs_subversion {
|
|
struct module *owner; /* THIS_MODULE pointer */
|
|
struct file_system_type *nfs_fs; /* NFS filesystem type */
|
|
const struct rpc_version *rpc_vers; /* NFS version information */
|
|
const struct nfs_rpc_ops *rpc_ops; /* NFS operations */
|
|
struct list_head list; /* List of NFS versions */
|
|
};
|
|
|
|
int nfs_register_versions(void);
|
|
void nfs_unregister_versions(void);
|
|
|
|
#ifdef CONFIG_NFS_V2
|
|
int init_nfs_v2(void);
|
|
void exit_nfs_v2(void);
|
|
#else /* CONFIG_NFS_V2 */
|
|
static inline int __init init_nfs_v2(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void exit_nfs_v2(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_NFS_V2 */
|
|
|
|
#ifdef CONFIG_NFS_V3
|
|
int init_nfs_v3(void);
|
|
void exit_nfs_v3(void);
|
|
#else /* CONFIG_NFS_V3 */
|
|
static inline int __init init_nfs_v3(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void exit_nfs_v3(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_NFS_V3 */
|
|
|
|
#ifdef CONFIG_NFS_V4
|
|
int init_nfs_v4(void);
|
|
void exit_nfs_v4(void);
|
|
#else /* CONFIG_NFS_V4 */
|
|
static inline int __init init_nfs_v4(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void exit_nfs_v4(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_NFS_V4 */
|
|
|
|
struct nfs_subversion *get_nfs_version(unsigned int);
|
|
void put_nfs_version(struct nfs_subversion *);
|
|
void register_nfs_version(struct nfs_subversion *);
|
|
void unregister_nfs_version(struct nfs_subversion *);
|
|
|
|
#endif /* __LINUX_INTERNAL_NFS_H */
|