diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
commit | 1d6ae775d7a948c9575658eb41184fd2e506c0df (patch) | |
tree | 8128a28e89d82f13bb8e3a2160382240c66e2816 /net/sunrpc | |
parent | 739cdbf1d8f0739b80035b80d69d871e33749b86 (diff) | |
parent | caf39e87cc1182f7dae84eefc43ca14d54c78ef9 (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_crypto.c | 5 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_mech.c | 9 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/gss_spkm3_mech.c | 12 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/svcauth_gss.c | 8 | ||||
-rw-r--r-- | net/sunrpc/cache.c | 8 | ||||
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 6 | ||||
-rw-r--r-- | net/sunrpc/sched.c | 8 | ||||
-rw-r--r-- | net/sunrpc/stats.c | 16 | ||||
-rw-r--r-- | net/sunrpc/sunrpc_syms.c | 6 | ||||
-rw-r--r-- | net/sunrpc/svcauth.c | 1 | ||||
-rw-r--r-- | net/sunrpc/svcauth_unix.c | 1 | ||||
-rw-r--r-- | net/sunrpc/svcsock.c | 13 |
12 files changed, 48 insertions, 45 deletions
diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index 5a7265aeaf83..ee6ae74cd1b2 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c | |||
@@ -160,7 +160,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
160 | " unsupported checksum %d", cksumtype); | 160 | " unsupported checksum %d", cksumtype); |
161 | goto out; | 161 | goto out; |
162 | } | 162 | } |
163 | if (!(tfm = crypto_alloc_tfm(cksumname, 0))) | 163 | if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) |
164 | goto out; | 164 | goto out; |
165 | cksum->len = crypto_tfm_alg_digestsize(tfm); | 165 | cksum->len = crypto_tfm_alg_digestsize(tfm); |
166 | if ((cksum->data = kmalloc(cksum->len, GFP_KERNEL)) == NULL) | 166 | if ((cksum->data = kmalloc(cksum->len, GFP_KERNEL)) == NULL) |
@@ -199,8 +199,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
199 | crypto_digest_final(tfm, cksum->data); | 199 | crypto_digest_final(tfm, cksum->data); |
200 | code = 0; | 200 | code = 0; |
201 | out: | 201 | out: |
202 | if (tfm) | 202 | crypto_free_tfm(tfm); |
203 | crypto_free_tfm(tfm); | ||
204 | return code; | 203 | return code; |
205 | } | 204 | } |
206 | 205 | ||
diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_krb5_mech.c index cf726510df8e..606a8a82cafb 100644 --- a/net/sunrpc/auth_gss/gss_krb5_mech.c +++ b/net/sunrpc/auth_gss/gss_krb5_mech.c | |||
@@ -185,12 +185,9 @@ static void | |||
185 | gss_delete_sec_context_kerberos(void *internal_ctx) { | 185 | gss_delete_sec_context_kerberos(void *internal_ctx) { |
186 | struct krb5_ctx *kctx = internal_ctx; | 186 | struct krb5_ctx *kctx = internal_ctx; |
187 | 187 | ||
188 | if (kctx->seq) | 188 | crypto_free_tfm(kctx->seq); |
189 | crypto_free_tfm(kctx->seq); | 189 | crypto_free_tfm(kctx->enc); |
190 | if (kctx->enc) | 190 | kfree(kctx->mech_used.data); |
191 | crypto_free_tfm(kctx->enc); | ||
192 | if (kctx->mech_used.data) | ||
193 | kfree(kctx->mech_used.data); | ||
194 | kfree(kctx); | 191 | kfree(kctx); |
195 | } | 192 | } |
196 | 193 | ||
diff --git a/net/sunrpc/auth_gss/gss_spkm3_mech.c b/net/sunrpc/auth_gss/gss_spkm3_mech.c index dad05994c3eb..6c97d61baa9b 100644 --- a/net/sunrpc/auth_gss/gss_spkm3_mech.c +++ b/net/sunrpc/auth_gss/gss_spkm3_mech.c | |||
@@ -214,14 +214,10 @@ static void | |||
214 | gss_delete_sec_context_spkm3(void *internal_ctx) { | 214 | gss_delete_sec_context_spkm3(void *internal_ctx) { |
215 | struct spkm3_ctx *sctx = internal_ctx; | 215 | struct spkm3_ctx *sctx = internal_ctx; |
216 | 216 | ||
217 | if(sctx->derived_integ_key) | 217 | crypto_free_tfm(sctx->derived_integ_key); |
218 | crypto_free_tfm(sctx->derived_integ_key); | 218 | crypto_free_tfm(sctx->derived_conf_key); |
219 | if(sctx->derived_conf_key) | 219 | kfree(sctx->share_key.data); |
220 | crypto_free_tfm(sctx->derived_conf_key); | 220 | kfree(sctx->mech_used.data); |
221 | if(sctx->share_key.data) | ||
222 | kfree(sctx->share_key.data); | ||
223 | if(sctx->mech_used.data) | ||
224 | kfree(sctx->mech_used.data); | ||
225 | kfree(sctx); | 221 | kfree(sctx); |
226 | } | 222 | } |
227 | 223 | ||
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index 5c8fe3bfc494..e3308195374e 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c | |||
@@ -250,6 +250,7 @@ out: | |||
250 | } | 250 | } |
251 | 251 | ||
252 | static struct cache_detail rsi_cache = { | 252 | static struct cache_detail rsi_cache = { |
253 | .owner = THIS_MODULE, | ||
253 | .hash_size = RSI_HASHMAX, | 254 | .hash_size = RSI_HASHMAX, |
254 | .hash_table = rsi_table, | 255 | .hash_table = rsi_table, |
255 | .name = "auth.rpcsec.init", | 256 | .name = "auth.rpcsec.init", |
@@ -436,6 +437,7 @@ out: | |||
436 | } | 437 | } |
437 | 438 | ||
438 | static struct cache_detail rsc_cache = { | 439 | static struct cache_detail rsc_cache = { |
440 | .owner = THIS_MODULE, | ||
439 | .hash_size = RSC_HASHMAX, | 441 | .hash_size = RSC_HASHMAX, |
440 | .hash_table = rsc_table, | 442 | .hash_table = rsc_table, |
441 | .name = "auth.rpcsec.context", | 443 | .name = "auth.rpcsec.context", |
@@ -1074,7 +1076,9 @@ gss_svc_init(void) | |||
1074 | void | 1076 | void |
1075 | gss_svc_shutdown(void) | 1077 | gss_svc_shutdown(void) |
1076 | { | 1078 | { |
1077 | cache_unregister(&rsc_cache); | 1079 | if (cache_unregister(&rsc_cache)) |
1078 | cache_unregister(&rsi_cache); | 1080 | printk(KERN_ERR "auth_rpcgss: failed to unregister rsc cache\n"); |
1081 | if (cache_unregister(&rsi_cache)) | ||
1082 | printk(KERN_ERR "auth_rpcgss: failed to unregister rsi cache\n"); | ||
1079 | svc_auth_unregister(RPC_AUTH_GSS); | 1083 | svc_auth_unregister(RPC_AUTH_GSS); |
1080 | } | 1084 | } |
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 900f5bc7e336..f509e9992767 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c | |||
@@ -177,7 +177,7 @@ void cache_register(struct cache_detail *cd) | |||
177 | cd->proc_ent = proc_mkdir(cd->name, proc_net_rpc); | 177 | cd->proc_ent = proc_mkdir(cd->name, proc_net_rpc); |
178 | if (cd->proc_ent) { | 178 | if (cd->proc_ent) { |
179 | struct proc_dir_entry *p; | 179 | struct proc_dir_entry *p; |
180 | cd->proc_ent->owner = THIS_MODULE; | 180 | cd->proc_ent->owner = cd->owner; |
181 | cd->channel_ent = cd->content_ent = NULL; | 181 | cd->channel_ent = cd->content_ent = NULL; |
182 | 182 | ||
183 | p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR, | 183 | p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR, |
@@ -185,7 +185,7 @@ void cache_register(struct cache_detail *cd) | |||
185 | cd->flush_ent = p; | 185 | cd->flush_ent = p; |
186 | if (p) { | 186 | if (p) { |
187 | p->proc_fops = &cache_flush_operations; | 187 | p->proc_fops = &cache_flush_operations; |
188 | p->owner = THIS_MODULE; | 188 | p->owner = cd->owner; |
189 | p->data = cd; | 189 | p->data = cd; |
190 | } | 190 | } |
191 | 191 | ||
@@ -195,7 +195,7 @@ void cache_register(struct cache_detail *cd) | |||
195 | cd->channel_ent = p; | 195 | cd->channel_ent = p; |
196 | if (p) { | 196 | if (p) { |
197 | p->proc_fops = &cache_file_operations; | 197 | p->proc_fops = &cache_file_operations; |
198 | p->owner = THIS_MODULE; | 198 | p->owner = cd->owner; |
199 | p->data = cd; | 199 | p->data = cd; |
200 | } | 200 | } |
201 | } | 201 | } |
@@ -205,7 +205,7 @@ void cache_register(struct cache_detail *cd) | |||
205 | cd->content_ent = p; | 205 | cd->content_ent = p; |
206 | if (p) { | 206 | if (p) { |
207 | p->proc_fops = &content_file_operations; | 207 | p->proc_fops = &content_file_operations; |
208 | p->owner = THIS_MODULE; | 208 | p->owner = cd->owner; |
209 | p->data = cd; | 209 | p->data = cd; |
210 | } | 210 | } |
211 | } | 211 | } |
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 554f224c0445..ded6c63f11ec 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Userland/kernel interface for rpcauth_gss. | 4 | * Userland/kernel interface for rpcauth_gss. |
5 | * Code shamelessly plagiarized from fs/nfsd/nfsctl.c | 5 | * Code shamelessly plagiarized from fs/nfsd/nfsctl.c |
6 | * and fs/driverfs/inode.c | 6 | * and fs/sysfs/inode.c |
7 | * | 7 | * |
8 | * Copyright (c) 2002, Trond Myklebust <trond.myklebust@fys.uio.no> | 8 | * Copyright (c) 2002, Trond Myklebust <trond.myklebust@fys.uio.no> |
9 | * | 9 | * |
@@ -28,13 +28,13 @@ | |||
28 | #include <linux/workqueue.h> | 28 | #include <linux/workqueue.h> |
29 | #include <linux/sunrpc/rpc_pipe_fs.h> | 29 | #include <linux/sunrpc/rpc_pipe_fs.h> |
30 | 30 | ||
31 | static struct vfsmount *rpc_mount; | 31 | static struct vfsmount *rpc_mount __read_mostly; |
32 | static int rpc_mount_count; | 32 | static int rpc_mount_count; |
33 | 33 | ||
34 | static struct file_system_type rpc_pipe_fs_type; | 34 | static struct file_system_type rpc_pipe_fs_type; |
35 | 35 | ||
36 | 36 | ||
37 | static kmem_cache_t *rpc_inode_cachep; | 37 | static kmem_cache_t *rpc_inode_cachep __read_mostly; |
38 | 38 | ||
39 | #define RPC_UPCALL_TIMEOUT (30*HZ) | 39 | #define RPC_UPCALL_TIMEOUT (30*HZ) |
40 | 40 | ||
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 2d9eb7fbd521..f3104035e35d 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
@@ -34,10 +34,10 @@ static int rpc_task_id; | |||
34 | #define RPC_BUFFER_MAXSIZE (2048) | 34 | #define RPC_BUFFER_MAXSIZE (2048) |
35 | #define RPC_BUFFER_POOLSIZE (8) | 35 | #define RPC_BUFFER_POOLSIZE (8) |
36 | #define RPC_TASK_POOLSIZE (8) | 36 | #define RPC_TASK_POOLSIZE (8) |
37 | static kmem_cache_t *rpc_task_slabp; | 37 | static kmem_cache_t *rpc_task_slabp __read_mostly; |
38 | static kmem_cache_t *rpc_buffer_slabp; | 38 | static kmem_cache_t *rpc_buffer_slabp __read_mostly; |
39 | static mempool_t *rpc_task_mempool; | 39 | static mempool_t *rpc_task_mempool __read_mostly; |
40 | static mempool_t *rpc_buffer_mempool; | 40 | static mempool_t *rpc_buffer_mempool __read_mostly; |
41 | 41 | ||
42 | static void __rpc_default_timer(struct rpc_task *task); | 42 | static void __rpc_default_timer(struct rpc_task *task); |
43 | static void rpciod_killall(void); | 43 | static void rpciod_killall(void); |
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c index 9b67dc19944c..4979f226e285 100644 --- a/net/sunrpc/stats.c +++ b/net/sunrpc/stats.c | |||
@@ -35,13 +35,13 @@ static int rpc_proc_show(struct seq_file *seq, void *v) { | |||
35 | int i, j; | 35 | int i, j; |
36 | 36 | ||
37 | seq_printf(seq, | 37 | seq_printf(seq, |
38 | "net %d %d %d %d\n", | 38 | "net %u %u %u %u\n", |
39 | statp->netcnt, | 39 | statp->netcnt, |
40 | statp->netudpcnt, | 40 | statp->netudpcnt, |
41 | statp->nettcpcnt, | 41 | statp->nettcpcnt, |
42 | statp->nettcpconn); | 42 | statp->nettcpconn); |
43 | seq_printf(seq, | 43 | seq_printf(seq, |
44 | "rpc %d %d %d\n", | 44 | "rpc %u %u %u\n", |
45 | statp->rpccnt, | 45 | statp->rpccnt, |
46 | statp->rpcretrans, | 46 | statp->rpcretrans, |
47 | statp->rpcauthrefresh); | 47 | statp->rpcauthrefresh); |
@@ -50,10 +50,10 @@ static int rpc_proc_show(struct seq_file *seq, void *v) { | |||
50 | const struct rpc_version *vers = prog->version[i]; | 50 | const struct rpc_version *vers = prog->version[i]; |
51 | if (!vers) | 51 | if (!vers) |
52 | continue; | 52 | continue; |
53 | seq_printf(seq, "proc%d %d", | 53 | seq_printf(seq, "proc%u %u", |
54 | vers->number, vers->nrprocs); | 54 | vers->number, vers->nrprocs); |
55 | for (j = 0; j < vers->nrprocs; j++) | 55 | for (j = 0; j < vers->nrprocs; j++) |
56 | seq_printf(seq, " %d", | 56 | seq_printf(seq, " %u", |
57 | vers->procs[j].p_count); | 57 | vers->procs[j].p_count); |
58 | seq_putc(seq, '\n'); | 58 | seq_putc(seq, '\n'); |
59 | } | 59 | } |
@@ -83,13 +83,13 @@ void svc_seq_show(struct seq_file *seq, const struct svc_stat *statp) { | |||
83 | int i, j; | 83 | int i, j; |
84 | 84 | ||
85 | seq_printf(seq, | 85 | seq_printf(seq, |
86 | "net %d %d %d %d\n", | 86 | "net %u %u %u %u\n", |
87 | statp->netcnt, | 87 | statp->netcnt, |
88 | statp->netudpcnt, | 88 | statp->netudpcnt, |
89 | statp->nettcpcnt, | 89 | statp->nettcpcnt, |
90 | statp->nettcpconn); | 90 | statp->nettcpconn); |
91 | seq_printf(seq, | 91 | seq_printf(seq, |
92 | "rpc %d %d %d %d %d\n", | 92 | "rpc %u %u %u %u %u\n", |
93 | statp->rpccnt, | 93 | statp->rpccnt, |
94 | statp->rpcbadfmt+statp->rpcbadauth+statp->rpcbadclnt, | 94 | statp->rpcbadfmt+statp->rpcbadauth+statp->rpcbadclnt, |
95 | statp->rpcbadfmt, | 95 | statp->rpcbadfmt, |
@@ -99,9 +99,9 @@ void svc_seq_show(struct seq_file *seq, const struct svc_stat *statp) { | |||
99 | for (i = 0; i < prog->pg_nvers; i++) { | 99 | for (i = 0; i < prog->pg_nvers; i++) { |
100 | if (!(vers = prog->pg_vers[i]) || !(proc = vers->vs_proc)) | 100 | if (!(vers = prog->pg_vers[i]) || !(proc = vers->vs_proc)) |
101 | continue; | 101 | continue; |
102 | seq_printf(seq, "proc%d %d", i, vers->vs_nproc); | 102 | seq_printf(seq, "proc%d %u", i, vers->vs_nproc); |
103 | for (j = 0; j < vers->vs_nproc; j++, proc++) | 103 | for (j = 0; j < vers->vs_nproc; j++, proc++) |
104 | seq_printf(seq, " %d", proc->pc_count); | 104 | seq_printf(seq, " %u", proc->pc_count); |
105 | seq_putc(seq, '\n'); | 105 | seq_putc(seq, '\n'); |
106 | } | 106 | } |
107 | } | 107 | } |
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c index 62a073495276..ed48ff022d35 100644 --- a/net/sunrpc/sunrpc_syms.c +++ b/net/sunrpc/sunrpc_syms.c | |||
@@ -176,8 +176,10 @@ cleanup_sunrpc(void) | |||
176 | { | 176 | { |
177 | unregister_rpc_pipefs(); | 177 | unregister_rpc_pipefs(); |
178 | rpc_destroy_mempool(); | 178 | rpc_destroy_mempool(); |
179 | cache_unregister(&auth_domain_cache); | 179 | if (cache_unregister(&auth_domain_cache)) |
180 | cache_unregister(&ip_map_cache); | 180 | printk(KERN_ERR "sunrpc: failed to unregister auth_domain cache\n"); |
181 | if (cache_unregister(&ip_map_cache)) | ||
182 | printk(KERN_ERR "sunrpc: failed to unregister ip_map cache\n"); | ||
181 | #ifdef RPC_DEBUG | 183 | #ifdef RPC_DEBUG |
182 | rpc_unregister_sysctl(); | 184 | rpc_unregister_sysctl(); |
183 | #endif | 185 | #endif |
diff --git a/net/sunrpc/svcauth.c b/net/sunrpc/svcauth.c index bde8147ef2db..dda4f0c63511 100644 --- a/net/sunrpc/svcauth.c +++ b/net/sunrpc/svcauth.c | |||
@@ -143,6 +143,7 @@ static void auth_domain_drop(struct cache_head *item, struct cache_detail *cd) | |||
143 | 143 | ||
144 | 144 | ||
145 | struct cache_detail auth_domain_cache = { | 145 | struct cache_detail auth_domain_cache = { |
146 | .owner = THIS_MODULE, | ||
146 | .hash_size = DN_HASHMAX, | 147 | .hash_size = DN_HASHMAX, |
147 | .hash_table = auth_domain_table, | 148 | .hash_table = auth_domain_table, |
148 | .name = "auth.domain", | 149 | .name = "auth.domain", |
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c index d6baf6fdf8a9..cac2e774dd81 100644 --- a/net/sunrpc/svcauth_unix.c +++ b/net/sunrpc/svcauth_unix.c | |||
@@ -242,6 +242,7 @@ static int ip_map_show(struct seq_file *m, | |||
242 | 242 | ||
243 | 243 | ||
244 | struct cache_detail ip_map_cache = { | 244 | struct cache_detail ip_map_cache = { |
245 | .owner = THIS_MODULE, | ||
245 | .hash_size = IP_HASHMAX, | 246 | .hash_size = IP_HASHMAX, |
246 | .hash_table = ip_table, | 247 | .hash_table = ip_table, |
247 | .name = "auth.unix.ip", | 248 | .name = "auth.unix.ip", |
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index d0c3120d0233..05fe2e735538 100644 --- a/net/sunrpc/svcsock.c +++ b/net/sunrpc/svcsock.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include <net/sock.h> | 34 | #include <net/sock.h> |
35 | #include <net/checksum.h> | 35 | #include <net/checksum.h> |
36 | #include <net/ip.h> | 36 | #include <net/ip.h> |
37 | #include <net/tcp.h> | 37 | #include <net/tcp_states.h> |
38 | #include <asm/uaccess.h> | 38 | #include <asm/uaccess.h> |
39 | #include <asm/ioctls.h> | 39 | #include <asm/ioctls.h> |
40 | 40 | ||
@@ -584,13 +584,16 @@ svc_udp_recvfrom(struct svc_rqst *rqstp) | |||
584 | /* possibly an icmp error */ | 584 | /* possibly an icmp error */ |
585 | dprintk("svc: recvfrom returned error %d\n", -err); | 585 | dprintk("svc: recvfrom returned error %d\n", -err); |
586 | } | 586 | } |
587 | if (skb->stamp.tv_sec == 0) { | 587 | if (skb->tstamp.off_sec == 0) { |
588 | skb->stamp.tv_sec = xtime.tv_sec; | 588 | struct timeval tv; |
589 | skb->stamp.tv_usec = xtime.tv_nsec / NSEC_PER_USEC; | 589 | |
590 | tv.tv_sec = xtime.tv_sec; | ||
591 | tv.tv_usec = xtime.tv_nsec * 1000; | ||
592 | skb_set_timestamp(skb, &tv); | ||
590 | /* Don't enable netstamp, sunrpc doesn't | 593 | /* Don't enable netstamp, sunrpc doesn't |
591 | need that much accuracy */ | 594 | need that much accuracy */ |
592 | } | 595 | } |
593 | svsk->sk_sk->sk_stamp = skb->stamp; | 596 | skb_get_timestamp(skb, &svsk->sk_sk->sk_stamp); |
594 | set_bit(SK_DATA, &svsk->sk_flags); /* there may be more data... */ | 597 | set_bit(SK_DATA, &svsk->sk_flags); /* there may be more data... */ |
595 | 598 | ||
596 | /* | 599 | /* |