diff options
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/auth_gss/auth_gss.c | 1 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_crypto.c | 11 | ||||
-rw-r--r-- | net/sunrpc/auth_gss/svcauth_gss.c | 14 | ||||
-rw-r--r-- | net/sunrpc/cache.c | 1 | ||||
-rw-r--r-- | net/sunrpc/stats.c | 3 |
5 files changed, 14 insertions, 16 deletions
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index 900ef31f5a0e..519ebc17c028 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c | |||
@@ -794,7 +794,6 @@ gss_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags) | |||
794 | 794 | ||
795 | out_err: | 795 | out_err: |
796 | dprintk("RPC: gss_create_cred failed with error %d\n", err); | 796 | dprintk("RPC: gss_create_cred failed with error %d\n", err); |
797 | if (cred) gss_destroy_cred(&cred->gc_base); | ||
798 | return ERR_PTR(err); | 797 | return ERR_PTR(err); |
799 | } | 798 | } |
800 | 799 | ||
diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index 97c981fa6b8e..76b969e6904f 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c | |||
@@ -212,7 +212,6 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
212 | char *cksumname; | 212 | char *cksumname; |
213 | struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ | 213 | struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ |
214 | struct scatterlist sg[1]; | 214 | struct scatterlist sg[1]; |
215 | u32 code = GSS_S_FAILURE; | ||
216 | 215 | ||
217 | switch (cksumtype) { | 216 | switch (cksumtype) { |
218 | case CKSUMTYPE_RSA_MD5: | 217 | case CKSUMTYPE_RSA_MD5: |
@@ -221,13 +220,11 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
221 | default: | 220 | default: |
222 | dprintk("RPC: krb5_make_checksum:" | 221 | dprintk("RPC: krb5_make_checksum:" |
223 | " unsupported checksum %d", cksumtype); | 222 | " unsupported checksum %d", cksumtype); |
224 | goto out; | 223 | return GSS_S_FAILURE; |
225 | } | 224 | } |
226 | if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) | 225 | if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) |
227 | goto out; | 226 | return GSS_S_FAILURE; |
228 | cksum->len = crypto_tfm_alg_digestsize(tfm); | 227 | cksum->len = crypto_tfm_alg_digestsize(tfm); |
229 | if ((cksum->data = kmalloc(cksum->len, GFP_KERNEL)) == NULL) | ||
230 | goto out; | ||
231 | 228 | ||
232 | crypto_digest_init(tfm); | 229 | crypto_digest_init(tfm); |
233 | sg_set_buf(sg, header, hdrlen); | 230 | sg_set_buf(sg, header, hdrlen); |
@@ -235,10 +232,8 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
235 | process_xdr_buf(body, body_offset, body->len - body_offset, | 232 | process_xdr_buf(body, body_offset, body->len - body_offset, |
236 | checksummer, tfm); | 233 | checksummer, tfm); |
237 | crypto_digest_final(tfm, cksum->data); | 234 | crypto_digest_final(tfm, cksum->data); |
238 | code = 0; | ||
239 | out: | ||
240 | crypto_free_tfm(tfm); | 235 | crypto_free_tfm(tfm); |
241 | return code; | 236 | return 0; |
242 | } | 237 | } |
243 | 238 | ||
244 | EXPORT_SYMBOL(make_checksum); | 239 | EXPORT_SYMBOL(make_checksum); |
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index 4d7eb9e704da..d51e316c5821 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c | |||
@@ -1122,18 +1122,20 @@ svcauth_gss_release(struct svc_rqst *rqstp) | |||
1122 | integ_len)) | 1122 | integ_len)) |
1123 | BUG(); | 1123 | BUG(); |
1124 | if (resbuf->page_len == 0 | 1124 | if (resbuf->page_len == 0 |
1125 | && resbuf->tail[0].iov_len + RPC_MAX_AUTH_SIZE | 1125 | && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE |
1126 | < PAGE_SIZE) { | 1126 | < PAGE_SIZE) { |
1127 | BUG_ON(resbuf->tail[0].iov_len); | 1127 | BUG_ON(resbuf->tail[0].iov_len); |
1128 | /* Use head for everything */ | 1128 | /* Use head for everything */ |
1129 | resv = &resbuf->head[0]; | 1129 | resv = &resbuf->head[0]; |
1130 | } else if (resbuf->tail[0].iov_base == NULL) { | 1130 | } else if (resbuf->tail[0].iov_base == NULL) { |
1131 | /* copied from nfsd4_encode_read */ | 1131 | if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE |
1132 | svc_take_page(rqstp); | 1132 | > PAGE_SIZE) |
1133 | resbuf->tail[0].iov_base = page_address(rqstp | 1133 | goto out_err; |
1134 | ->rq_respages[rqstp->rq_resused-1]); | 1134 | resbuf->tail[0].iov_base = |
1135 | rqstp->rq_restailpage = rqstp->rq_resused-1; | 1135 | resbuf->head[0].iov_base |
1136 | + resbuf->head[0].iov_len; | ||
1136 | resbuf->tail[0].iov_len = 0; | 1137 | resbuf->tail[0].iov_len = 0; |
1138 | rqstp->rq_restailpage = 0; | ||
1137 | resv = &resbuf->tail[0]; | 1139 | resv = &resbuf->tail[0]; |
1138 | } else { | 1140 | } else { |
1139 | resv = &resbuf->tail[0]; | 1141 | resv = &resbuf->tail[0]; |
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 3ac4193a78ed..7026b0866b7b 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c | |||
@@ -159,6 +159,7 @@ struct cache_head *sunrpc_cache_update(struct cache_detail *detail, | |||
159 | detail->update(tmp, new); | 159 | detail->update(tmp, new); |
160 | tmp->next = *head; | 160 | tmp->next = *head; |
161 | *head = tmp; | 161 | *head = tmp; |
162 | detail->entries++; | ||
162 | cache_get(tmp); | 163 | cache_get(tmp); |
163 | is_new = cache_fresh_locked(tmp, new->expiry_time); | 164 | is_new = cache_fresh_locked(tmp, new->expiry_time); |
164 | cache_fresh_locked(old, 0); | 165 | cache_fresh_locked(old, 0); |
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c index dea529666d69..15c2db26767b 100644 --- a/net/sunrpc/stats.c +++ b/net/sunrpc/stats.c | |||
@@ -176,7 +176,8 @@ void rpc_count_iostats(struct rpc_task *task) | |||
176 | op_metrics->om_execute += execute; | 176 | op_metrics->om_execute += execute; |
177 | } | 177 | } |
178 | 178 | ||
179 | void _print_name(struct seq_file *seq, unsigned int op, struct rpc_procinfo *procs) | 179 | static void _print_name(struct seq_file *seq, unsigned int op, |
180 | struct rpc_procinfo *procs) | ||
180 | { | 181 | { |
181 | if (procs[op].p_name) | 182 | if (procs[op].p_name) |
182 | seq_printf(seq, "\t%12s: ", procs[op].p_name); | 183 | seq_printf(seq, "\t%12s: ", procs[op].p_name); |