diff options
Diffstat (limited to 'fs/nfs/fscache.h')
-rw-r--r-- | fs/nfs/fscache.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/fs/nfs/fscache.h b/fs/nfs/fscache.h index 1d864bedf154..22b971e8b380 100644 --- a/fs/nfs/fscache.h +++ b/fs/nfs/fscache.h | |||
@@ -20,10 +20,48 @@ | |||
20 | #ifdef CONFIG_NFS_FSCACHE | 20 | #ifdef CONFIG_NFS_FSCACHE |
21 | 21 | ||
22 | /* | 22 | /* |
23 | * set of NFS FS-Cache objects that form a superblock key | ||
24 | */ | ||
25 | struct nfs_fscache_key { | ||
26 | struct rb_node node; | ||
27 | struct nfs_client *nfs_client; /* the server */ | ||
28 | |||
29 | /* the elements of the unique key - as used by nfs_compare_super() and | ||
30 | * nfs_compare_mount_options() to distinguish superblocks */ | ||
31 | struct { | ||
32 | struct { | ||
33 | unsigned long s_flags; /* various flags | ||
34 | * (& NFS_MS_MASK) */ | ||
35 | } super; | ||
36 | |||
37 | struct { | ||
38 | struct nfs_fsid fsid; | ||
39 | int flags; | ||
40 | unsigned int rsize; /* read size */ | ||
41 | unsigned int wsize; /* write size */ | ||
42 | unsigned int acregmin; /* attr cache timeouts */ | ||
43 | unsigned int acregmax; | ||
44 | unsigned int acdirmin; | ||
45 | unsigned int acdirmax; | ||
46 | } nfs_server; | ||
47 | |||
48 | struct { | ||
49 | rpc_authflavor_t au_flavor; | ||
50 | } rpc_auth; | ||
51 | |||
52 | /* uniquifier - can be used if nfs_server.flags includes | ||
53 | * NFS_MOUNT_UNSHARED */ | ||
54 | u8 uniq_len; | ||
55 | char uniquifier[0]; | ||
56 | } key; | ||
57 | }; | ||
58 | |||
59 | /* | ||
23 | * fscache-index.c | 60 | * fscache-index.c |
24 | */ | 61 | */ |
25 | extern struct fscache_netfs nfs_fscache_netfs; | 62 | extern struct fscache_netfs nfs_fscache_netfs; |
26 | extern const struct fscache_cookie_def nfs_fscache_server_index_def; | 63 | extern const struct fscache_cookie_def nfs_fscache_server_index_def; |
64 | extern const struct fscache_cookie_def nfs_fscache_super_index_def; | ||
27 | 65 | ||
28 | extern int nfs_fscache_register(void); | 66 | extern int nfs_fscache_register(void); |
29 | extern void nfs_fscache_unregister(void); | 67 | extern void nfs_fscache_unregister(void); |
@@ -34,6 +72,10 @@ extern void nfs_fscache_unregister(void); | |||
34 | extern void nfs_fscache_get_client_cookie(struct nfs_client *); | 72 | extern void nfs_fscache_get_client_cookie(struct nfs_client *); |
35 | extern void nfs_fscache_release_client_cookie(struct nfs_client *); | 73 | extern void nfs_fscache_release_client_cookie(struct nfs_client *); |
36 | 74 | ||
75 | extern void nfs_fscache_get_super_cookie(struct super_block *, | ||
76 | struct nfs_parsed_mount_data *); | ||
77 | extern void nfs_fscache_release_super_cookie(struct super_block *); | ||
78 | |||
37 | #else /* CONFIG_NFS_FSCACHE */ | 79 | #else /* CONFIG_NFS_FSCACHE */ |
38 | static inline int nfs_fscache_register(void) { return 0; } | 80 | static inline int nfs_fscache_register(void) { return 0; } |
39 | static inline void nfs_fscache_unregister(void) {} | 81 | static inline void nfs_fscache_unregister(void) {} |
@@ -41,5 +83,12 @@ static inline void nfs_fscache_unregister(void) {} | |||
41 | static inline void nfs_fscache_get_client_cookie(struct nfs_client *clp) {} | 83 | static inline void nfs_fscache_get_client_cookie(struct nfs_client *clp) {} |
42 | static inline void nfs_fscache_release_client_cookie(struct nfs_client *clp) {} | 84 | static inline void nfs_fscache_release_client_cookie(struct nfs_client *clp) {} |
43 | 85 | ||
86 | static inline void nfs_fscache_get_super_cookie( | ||
87 | struct super_block *sb, | ||
88 | struct nfs_parsed_mount_data *data) | ||
89 | { | ||
90 | } | ||
91 | static inline void nfs_fscache_release_super_cookie(struct super_block *sb) {} | ||
92 | |||
44 | #endif /* CONFIG_NFS_FSCACHE */ | 93 | #endif /* CONFIG_NFS_FSCACHE */ |
45 | #endif /* _NFS_FSCACHE_H */ | 94 | #endif /* _NFS_FSCACHE_H */ |