diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-31 21:18:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-31 21:18:11 -0400 |
commit | a00b6151a2ae4c52576c35d3998e144a993d50b8 (patch) | |
tree | fc312be05c4deb4dead7a6afa09e88017d3a0146 /include/linux | |
parent | 08615d7d85e5aa02c05bf6c4dde87d940e7f85f6 (diff) | |
parent | b108fe6b08f3f61c2c465649b20b7d4b4c185728 (diff) |
Merge branch 'for-3.5-take-2' of git://linux-nfs.org/~bfields/linux
Pull nfsd update from Bruce Fields.
* 'for-3.5-take-2' of git://linux-nfs.org/~bfields/linux: (23 commits)
nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek
SUNRPC: split upcall function to extract reusable parts
nfsd: allocate id-to-name and name-to-id caches in per-net operations.
nfsd: make name-to-id cache allocated per network namespace context
nfsd: make id-to-name cache allocated per network namespace context
nfsd: pass network context to idmap init/exit functions
nfsd: allocate export and expkey caches in per-net operations.
nfsd: make expkey cache allocated per network namespace context
nfsd: make export cache allocated per network namespace context
nfsd: pass pointer to export cache down to stack wherever possible.
nfsd: pass network context to export caches init/shutdown routines
Lockd: pass network namespace to creation and destruction routines
NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches
nfsd: pass pointer to expkey cache down to stack wherever possible.
nfsd: use hash table from cache detail in nfsd export seq ops
nfsd: pass svc_export_cache pointer as private data to "exports" seq file ops
nfsd: use exp_put() for svc_export_cache put
nfsd: use cache detail pointer from svc_export structure on cache put
nfsd: add link to owner cache detail to svc_export structure
nfsd: use passed cache_detail pointer expkey_parse()
...
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/lockd/bind.h | 4 | ||||
-rw-r--r-- | include/linux/nfsd/export.h | 13 | ||||
-rw-r--r-- | include/linux/sunrpc/svcauth.h | 3 |
3 files changed, 9 insertions, 11 deletions
diff --git a/include/linux/lockd/bind.h b/include/linux/lockd/bind.h index 11a966e5f82..4d24d64578c 100644 --- a/include/linux/lockd/bind.h +++ b/include/linux/lockd/bind.h | |||
@@ -54,7 +54,7 @@ extern void nlmclnt_done(struct nlm_host *host); | |||
54 | 54 | ||
55 | extern int nlmclnt_proc(struct nlm_host *host, int cmd, | 55 | extern int nlmclnt_proc(struct nlm_host *host, int cmd, |
56 | struct file_lock *fl); | 56 | struct file_lock *fl); |
57 | extern int lockd_up(void); | 57 | extern int lockd_up(struct net *net); |
58 | extern void lockd_down(void); | 58 | extern void lockd_down(struct net *net); |
59 | 59 | ||
60 | #endif /* LINUX_LOCKD_BIND_H */ | 60 | #endif /* LINUX_LOCKD_BIND_H */ |
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h index f85308e688f..e33f747b173 100644 --- a/include/linux/nfsd/export.h +++ b/include/linux/nfsd/export.h | |||
@@ -103,6 +103,7 @@ struct svc_export { | |||
103 | struct nfsd4_fs_locations ex_fslocs; | 103 | struct nfsd4_fs_locations ex_fslocs; |
104 | int ex_nflavors; | 104 | int ex_nflavors; |
105 | struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST]; | 105 | struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST]; |
106 | struct cache_detail *cd; | ||
106 | }; | 107 | }; |
107 | 108 | ||
108 | /* an "export key" (expkey) maps a filehandlefragement to an | 109 | /* an "export key" (expkey) maps a filehandlefragement to an |
@@ -129,24 +130,22 @@ __be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp); | |||
129 | /* | 130 | /* |
130 | * Function declarations | 131 | * Function declarations |
131 | */ | 132 | */ |
132 | int nfsd_export_init(void); | 133 | int nfsd_export_init(struct net *); |
133 | void nfsd_export_shutdown(void); | 134 | void nfsd_export_shutdown(struct net *); |
134 | void nfsd_export_flush(void); | 135 | void nfsd_export_flush(struct net *); |
135 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, | 136 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, |
136 | struct path *); | 137 | struct path *); |
137 | struct svc_export * rqst_exp_parent(struct svc_rqst *, | 138 | struct svc_export * rqst_exp_parent(struct svc_rqst *, |
138 | struct path *); | 139 | struct path *); |
139 | struct svc_export * rqst_find_fsidzero_export(struct svc_rqst *); | 140 | struct svc_export * rqst_find_fsidzero_export(struct svc_rqst *); |
140 | int exp_rootfh(struct auth_domain *, | 141 | int exp_rootfh(struct net *, struct auth_domain *, |
141 | char *path, struct knfsd_fh *, int maxsize); | 142 | char *path, struct knfsd_fh *, int maxsize); |
142 | __be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *); | 143 | __be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *); |
143 | __be32 nfserrno(int errno); | 144 | __be32 nfserrno(int errno); |
144 | 145 | ||
145 | extern struct cache_detail svc_export_cache; | ||
146 | |||
147 | static inline void exp_put(struct svc_export *exp) | 146 | static inline void exp_put(struct svc_export *exp) |
148 | { | 147 | { |
149 | cache_put(&exp->h, &svc_export_cache); | 148 | cache_put(&exp->h, exp->cd); |
150 | } | 149 | } |
151 | 150 | ||
152 | static inline void exp_get(struct svc_export *exp) | 151 | static inline void exp_get(struct svc_export *exp) |
diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h index 548790e9113..2c54683b91d 100644 --- a/include/linux/sunrpc/svcauth.h +++ b/include/linux/sunrpc/svcauth.h | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/sunrpc/cache.h> | 16 | #include <linux/sunrpc/cache.h> |
17 | #include <linux/hash.h> | 17 | #include <linux/hash.h> |
18 | 18 | ||
19 | #define SVC_CRED_NGROUPS 32 | ||
20 | struct svc_cred { | 19 | struct svc_cred { |
21 | uid_t cr_uid; | 20 | uid_t cr_uid; |
22 | gid_t cr_gid; | 21 | gid_t cr_gid; |
@@ -131,7 +130,7 @@ extern struct auth_domain *auth_domain_lookup(char *name, struct auth_domain *ne | |||
131 | extern struct auth_domain *auth_domain_find(char *name); | 130 | extern struct auth_domain *auth_domain_find(char *name); |
132 | extern struct auth_domain *auth_unix_lookup(struct net *net, struct in6_addr *addr); | 131 | extern struct auth_domain *auth_unix_lookup(struct net *net, struct in6_addr *addr); |
133 | extern int auth_unix_forget_old(struct auth_domain *dom); | 132 | extern int auth_unix_forget_old(struct auth_domain *dom); |
134 | extern void svcauth_unix_purge(void); | 133 | extern void svcauth_unix_purge(struct net *net); |
135 | extern void svcauth_unix_info_release(struct svc_xprt *xpt); | 134 | extern void svcauth_unix_info_release(struct svc_xprt *xpt); |
136 | extern int svcauth_unix_set_client(struct svc_rqst *rqstp); | 135 | extern int svcauth_unix_set_client(struct svc_rqst *rqstp); |
137 | 136 | ||