diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-03-21 16:42:14 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-03-26 11:48:54 -0400 |
commit | 1df00640c9111c881633d9b219f18e66c52599ec (patch) | |
tree | e36d3924d84f47ec93f6650ff1fd5b8ea7d10d24 /fs/nfsd | |
parent | ab4684d1560f8d77f6ce82bd3f1f82937070d397 (diff) | |
parent | 5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492 (diff) |
Merge nfs containerization work from Trond's tree
The nfs containerization work is a prerequisite for Jeff Layton's reboot
recovery rework.
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4callback.c | 8 | ||||
-rw-r--r-- | fs/nfsd/nfs4state.c | 2 | ||||
-rw-r--r-- | fs/nfsd/nfsctl.c | 6 | ||||
-rw-r--r-- | fs/nfsd/nfssvc.c | 4 | ||||
-rw-r--r-- | fs/nfsd/stats.c | 5 |
5 files changed, 13 insertions, 12 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 24b6bcf1e945..cf6e4190e41c 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c | |||
@@ -605,24 +605,24 @@ static struct rpc_version nfs_cb_version4 = { | |||
605 | .procs = nfs4_cb_procedures | 605 | .procs = nfs4_cb_procedures |
606 | }; | 606 | }; |
607 | 607 | ||
608 | static struct rpc_version *nfs_cb_version[] = { | 608 | static const struct rpc_version *nfs_cb_version[] = { |
609 | &nfs_cb_version4, | 609 | &nfs_cb_version4, |
610 | }; | 610 | }; |
611 | 611 | ||
612 | static struct rpc_program cb_program; | 612 | static const struct rpc_program cb_program; |
613 | 613 | ||
614 | static struct rpc_stat cb_stats = { | 614 | static struct rpc_stat cb_stats = { |
615 | .program = &cb_program | 615 | .program = &cb_program |
616 | }; | 616 | }; |
617 | 617 | ||
618 | #define NFS4_CALLBACK 0x40000000 | 618 | #define NFS4_CALLBACK 0x40000000 |
619 | static struct rpc_program cb_program = { | 619 | static const struct rpc_program cb_program = { |
620 | .name = "nfs4_cb", | 620 | .name = "nfs4_cb", |
621 | .number = NFS4_CALLBACK, | 621 | .number = NFS4_CALLBACK, |
622 | .nrvers = ARRAY_SIZE(nfs_cb_version), | 622 | .nrvers = ARRAY_SIZE(nfs_cb_version), |
623 | .version = nfs_cb_version, | 623 | .version = nfs_cb_version, |
624 | .stats = &cb_stats, | 624 | .stats = &cb_stats, |
625 | .pipe_dir_name = "/nfsd4_cb", | 625 | .pipe_dir_name = "nfsd4_cb", |
626 | }; | 626 | }; |
627 | 627 | ||
628 | static int max_cb_time(void) | 628 | static int max_cb_time(void) |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index e318964d8aca..a0a2b535b0e0 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -1346,7 +1346,7 @@ gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, struct svc_r | |||
1346 | else | 1346 | else |
1347 | goto out_err; | 1347 | goto out_err; |
1348 | 1348 | ||
1349 | conn->cb_addrlen = rpc_uaddr2sockaddr(se->se_callback_addr_val, | 1349 | conn->cb_addrlen = rpc_uaddr2sockaddr(&init_net, se->se_callback_addr_val, |
1350 | se->se_callback_addr_len, | 1350 | se->se_callback_addr_len, |
1351 | (struct sockaddr *)&conn->cb_addr, | 1351 | (struct sockaddr *)&conn->cb_addr, |
1352 | sizeof(conn->cb_addr)); | 1352 | sizeof(conn->cb_addr)); |
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c index 748eda93ce59..64c24af8d7ea 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c | |||
@@ -223,7 +223,7 @@ static ssize_t write_unlock_ip(struct file *file, char *buf, size_t size) | |||
223 | if (qword_get(&buf, fo_path, size) < 0) | 223 | if (qword_get(&buf, fo_path, size) < 0) |
224 | return -EINVAL; | 224 | return -EINVAL; |
225 | 225 | ||
226 | if (rpc_pton(fo_path, size, sap, salen) == 0) | 226 | if (rpc_pton(&init_net, fo_path, size, sap, salen) == 0) |
227 | return -EINVAL; | 227 | return -EINVAL; |
228 | 228 | ||
229 | return nlmsvc_unlock_all_by_ip(sap); | 229 | return nlmsvc_unlock_all_by_ip(sap); |
@@ -722,7 +722,7 @@ static ssize_t __write_ports_addxprt(char *buf) | |||
722 | nfsd_serv->sv_nrthreads--; | 722 | nfsd_serv->sv_nrthreads--; |
723 | return 0; | 723 | return 0; |
724 | out_close: | 724 | out_close: |
725 | xprt = svc_find_xprt(nfsd_serv, transport, PF_INET, port); | 725 | xprt = svc_find_xprt(nfsd_serv, transport, &init_net, PF_INET, port); |
726 | if (xprt != NULL) { | 726 | if (xprt != NULL) { |
727 | svc_close_xprt(xprt); | 727 | svc_close_xprt(xprt); |
728 | svc_xprt_put(xprt); | 728 | svc_xprt_put(xprt); |
@@ -748,7 +748,7 @@ static ssize_t __write_ports_delxprt(char *buf) | |||
748 | if (port < 1 || port > USHRT_MAX || nfsd_serv == NULL) | 748 | if (port < 1 || port > USHRT_MAX || nfsd_serv == NULL) |
749 | return -EINVAL; | 749 | return -EINVAL; |
750 | 750 | ||
751 | xprt = svc_find_xprt(nfsd_serv, transport, AF_UNSPEC, port); | 751 | xprt = svc_find_xprt(nfsd_serv, transport, &init_net, AF_UNSPEC, port); |
752 | if (xprt == NULL) | 752 | if (xprt == NULL) |
753 | return -ENOTCONN; | 753 | return -ENOTCONN; |
754 | 754 | ||
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index aacf1f4b9fb5..28dfad39f0c5 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c | |||
@@ -251,13 +251,13 @@ static void nfsd_shutdown(void) | |||
251 | nfsd_up = false; | 251 | nfsd_up = false; |
252 | } | 252 | } |
253 | 253 | ||
254 | static void nfsd_last_thread(struct svc_serv *serv) | 254 | static void nfsd_last_thread(struct svc_serv *serv, struct net *net) |
255 | { | 255 | { |
256 | /* When last nfsd thread exits we need to do some clean-up */ | 256 | /* When last nfsd thread exits we need to do some clean-up */ |
257 | nfsd_serv = NULL; | 257 | nfsd_serv = NULL; |
258 | nfsd_shutdown(); | 258 | nfsd_shutdown(); |
259 | 259 | ||
260 | svc_rpcb_cleanup(serv); | 260 | svc_rpcb_cleanup(serv, net); |
261 | 261 | ||
262 | printk(KERN_WARNING "nfsd: last server has exited, flushing export " | 262 | printk(KERN_WARNING "nfsd: last server has exited, flushing export " |
263 | "cache\n"); | 263 | "cache\n"); |
diff --git a/fs/nfsd/stats.c b/fs/nfsd/stats.c index a2e2402b2afb..6d4521feb6e3 100644 --- a/fs/nfsd/stats.c +++ b/fs/nfsd/stats.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/sunrpc/stats.h> | 26 | #include <linux/sunrpc/stats.h> |
27 | #include <linux/nfsd/stats.h> | 27 | #include <linux/nfsd/stats.h> |
28 | #include <net/net_namespace.h> | ||
28 | 29 | ||
29 | #include "nfsd.h" | 30 | #include "nfsd.h" |
30 | 31 | ||
@@ -94,11 +95,11 @@ static const struct file_operations nfsd_proc_fops = { | |||
94 | void | 95 | void |
95 | nfsd_stat_init(void) | 96 | nfsd_stat_init(void) |
96 | { | 97 | { |
97 | svc_proc_register(&nfsd_svcstats, &nfsd_proc_fops); | 98 | svc_proc_register(&init_net, &nfsd_svcstats, &nfsd_proc_fops); |
98 | } | 99 | } |
99 | 100 | ||
100 | void | 101 | void |
101 | nfsd_stat_shutdown(void) | 102 | nfsd_stat_shutdown(void) |
102 | { | 103 | { |
103 | svc_proc_unregister("nfsd"); | 104 | svc_proc_unregister(&init_net, "nfsd"); |
104 | } | 105 | } |