diff options
author | Stanislav Kinsbursky <skinsbursky@parallels.com> | 2012-04-11 07:13:14 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-04-11 18:01:33 -0400 |
commit | b89109bef4a6a4a8ab5788778ee0addca0787870 (patch) | |
tree | d42ef77b42075c474e1d8f4f4b95a1d5f03c564f | |
parent | e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0 (diff) |
nfsd: pass network context to export caches init/shutdown routines
These functions will be called from per-net operations.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r-- | fs/nfsd/export.c | 20 | ||||
-rw-r--r-- | fs/nfsd/nfsctl.c | 6 | ||||
-rw-r--r-- | include/linux/nfsd/export.h | 4 |
3 files changed, 15 insertions, 15 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index 84723bc37c59..6453669dcef7 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c | |||
@@ -1228,17 +1228,17 @@ const struct seq_operations nfs_exports_op = { | |||
1228 | * Initialize the exports module. | 1228 | * Initialize the exports module. |
1229 | */ | 1229 | */ |
1230 | int | 1230 | int |
1231 | nfsd_export_init(void) | 1231 | nfsd_export_init(struct net *net) |
1232 | { | 1232 | { |
1233 | int rv; | 1233 | int rv; |
1234 | dprintk("nfsd: initializing export module.\n"); | 1234 | dprintk("nfsd: initializing export module (net: %p).\n", net); |
1235 | 1235 | ||
1236 | rv = cache_register_net(&svc_export_cache, &init_net); | 1236 | rv = cache_register_net(&svc_export_cache, net); |
1237 | if (rv) | 1237 | if (rv) |
1238 | return rv; | 1238 | return rv; |
1239 | rv = cache_register_net(&svc_expkey_cache, &init_net); | 1239 | rv = cache_register_net(&svc_expkey_cache, net); |
1240 | if (rv) | 1240 | if (rv) |
1241 | cache_unregister_net(&svc_export_cache, &init_net); | 1241 | cache_unregister_net(&svc_export_cache, net); |
1242 | return rv; | 1242 | return rv; |
1243 | 1243 | ||
1244 | } | 1244 | } |
@@ -1257,14 +1257,14 @@ nfsd_export_flush(void) | |||
1257 | * Shutdown the exports module. | 1257 | * Shutdown the exports module. |
1258 | */ | 1258 | */ |
1259 | void | 1259 | void |
1260 | nfsd_export_shutdown(void) | 1260 | nfsd_export_shutdown(struct net *net) |
1261 | { | 1261 | { |
1262 | 1262 | ||
1263 | dprintk("nfsd: shutting down export module.\n"); | 1263 | dprintk("nfsd: shutting down export module (net: %p).\n", net); |
1264 | 1264 | ||
1265 | cache_unregister_net(&svc_expkey_cache, &init_net); | 1265 | cache_unregister_net(&svc_expkey_cache, net); |
1266 | cache_unregister_net(&svc_export_cache, &init_net); | 1266 | cache_unregister_net(&svc_export_cache, net); |
1267 | svcauth_unix_purge(); | 1267 | svcauth_unix_purge(); |
1268 | 1268 | ||
1269 | dprintk("nfsd: export shutdown complete.\n"); | 1269 | dprintk("nfsd: export shutdown complete (net: %p).\n", net); |
1270 | } | 1270 | } |
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c index ae19293e68df..bc76f8ebbe5e 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c | |||
@@ -1163,7 +1163,7 @@ static int __init init_nfsd(void) | |||
1163 | retval = nfsd_reply_cache_init(); | 1163 | retval = nfsd_reply_cache_init(); |
1164 | if (retval) | 1164 | if (retval) |
1165 | goto out_free_stat; | 1165 | goto out_free_stat; |
1166 | retval = nfsd_export_init(); | 1166 | retval = nfsd_export_init(&init_net); |
1167 | if (retval) | 1167 | if (retval) |
1168 | goto out_free_cache; | 1168 | goto out_free_cache; |
1169 | nfsd_lockd_init(); /* lockd->nfsd callbacks */ | 1169 | nfsd_lockd_init(); /* lockd->nfsd callbacks */ |
@@ -1184,7 +1184,7 @@ out_free_idmap: | |||
1184 | nfsd_idmap_shutdown(); | 1184 | nfsd_idmap_shutdown(); |
1185 | out_free_lockd: | 1185 | out_free_lockd: |
1186 | nfsd_lockd_shutdown(); | 1186 | nfsd_lockd_shutdown(); |
1187 | nfsd_export_shutdown(); | 1187 | nfsd_export_shutdown(&init_net); |
1188 | out_free_cache: | 1188 | out_free_cache: |
1189 | nfsd_reply_cache_shutdown(); | 1189 | nfsd_reply_cache_shutdown(); |
1190 | out_free_stat: | 1190 | out_free_stat: |
@@ -1201,7 +1201,7 @@ out_unregister_notifier: | |||
1201 | 1201 | ||
1202 | static void __exit exit_nfsd(void) | 1202 | static void __exit exit_nfsd(void) |
1203 | { | 1203 | { |
1204 | nfsd_export_shutdown(); | 1204 | nfsd_export_shutdown(&init_net); |
1205 | nfsd_reply_cache_shutdown(); | 1205 | nfsd_reply_cache_shutdown(); |
1206 | remove_proc_entry("fs/nfs/exports", NULL); | 1206 | remove_proc_entry("fs/nfs/exports", NULL); |
1207 | remove_proc_entry("fs/nfs", NULL); | 1207 | remove_proc_entry("fs/nfs", NULL); |
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h index 485c2afa96f7..375096c083d3 100644 --- a/include/linux/nfsd/export.h +++ b/include/linux/nfsd/export.h | |||
@@ -130,8 +130,8 @@ __be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp); | |||
130 | /* | 130 | /* |
131 | * Function declarations | 131 | * Function declarations |
132 | */ | 132 | */ |
133 | int nfsd_export_init(void); | 133 | int nfsd_export_init(struct net *); |
134 | void nfsd_export_shutdown(void); | 134 | void nfsd_export_shutdown(struct net *); |
135 | void nfsd_export_flush(void); | 135 | void nfsd_export_flush(void); |
136 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, | 136 | struct svc_export * rqst_exp_get_by_name(struct svc_rqst *, |
137 | struct path *); | 137 | struct path *); |