1 /* 2 * Copyright (c) 2012 Netapp, Inc. All rights reserved. 3 * 4 * Function and structures exported by the NFS module 5 * for use by NFS version-specific modules. 6 */ 7 #ifndef __LINUX_INTERNAL_NFS_H 8 #define __LINUX_INTERNAL_NFS_H 9 10 #include <linux/fs.h> 11 #include <linux/sunrpc/sched.h> 12 #include <linux/nfs_xdr.h> 13 14 struct nfs_subversion { 15 struct module *owner; /* THIS_MODULE pointer */ 16 struct file_system_type *nfs_fs; /* NFS filesystem type */ 17 const struct rpc_version *rpc_vers; /* NFS version information */ 18 const struct nfs_rpc_ops *rpc_ops; /* NFS operations */ 19 const struct super_operations *sops; /* NFS Super operations */ 20 const struct xattr_handler **xattr; /* NFS xattr handlers */ 21 struct list_head list; /* List of NFS versions */ 22 }; 23 24 int nfs_register_versions(void); 25 void nfs_unregister_versions(void); 26 27 #ifdef CONFIG_NFS_V3 28 int init_nfs_v3(void); 29 void exit_nfs_v3(void); 30 #else /* CONFIG_NFS_V3 */ 31 static inline int __init init_nfs_v3(void) 32 { 33 return 0; 34 } 35 36 static inline void exit_nfs_v3(void) 37 { 38 } 39 #endif /* CONFIG_NFS_V3 */ 40 41 #ifdef CONFIG_NFS_V4 42 int init_nfs_v4(void); 43 void exit_nfs_v4(void); 44 #else /* CONFIG_NFS_V4 */ 45 static inline int __init init_nfs_v4(void) 46 { 47 return 0; 48 } 49 50 static inline void exit_nfs_v4(void) 51 { 52 } 53 #endif /* CONFIG_NFS_V4 */ 54 55 struct nfs_subversion *get_nfs_version(unsigned int); 56 void put_nfs_version(struct nfs_subversion *); 57 void register_nfs_version(struct nfs_subversion *); 58 void unregister_nfs_version(struct nfs_subversion *); 59 60 #endif /* __LINUX_INTERNAL_NFS_H */ 61