diff options
| -rw-r--r-- | fs/lockd/svclock.c | 2 | ||||
| -rw-r--r-- | fs/nfs/dir.c | 5 | ||||
| -rw-r--r-- | fs/nfs/direct.c | 8 | ||||
| -rw-r--r-- | fs/nfs/file.c | 5 | ||||
| -rw-r--r-- | fs/nfs/inode.c | 5 | ||||
| -rw-r--r-- | fs/nfs/nfs4proc.c | 10 | ||||
| -rw-r--r-- | include/linux/sunrpc/metrics.h | 12 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 1 | ||||
| -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/stats.c | 3 |
11 files changed, 33 insertions, 30 deletions
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c index d2b66bad7d50..3ef739120dff 100644 --- a/fs/lockd/svclock.c +++ b/fs/lockd/svclock.c | |||
| @@ -650,7 +650,7 @@ static void nlmsvc_grant_callback(struct rpc_task *task, void *data) | |||
| 650 | svc_wake_up(block->b_daemon); | 650 | svc_wake_up(block->b_daemon); |
| 651 | } | 651 | } |
| 652 | 652 | ||
| 653 | void nlmsvc_grant_release(void *data) | 653 | static void nlmsvc_grant_release(void *data) |
| 654 | { | 654 | { |
| 655 | struct nlm_rqst *call = data; | 655 | struct nlm_rqst *call = data; |
| 656 | 656 | ||
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index a23f34894167..cae74dd4c7f5 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
| @@ -128,15 +128,14 @@ struct inode_operations nfs4_dir_inode_operations = { | |||
| 128 | static int | 128 | static int |
| 129 | nfs_opendir(struct inode *inode, struct file *filp) | 129 | nfs_opendir(struct inode *inode, struct file *filp) |
| 130 | { | 130 | { |
| 131 | int res = 0; | 131 | int res; |
| 132 | 132 | ||
| 133 | dfprintk(VFS, "NFS: opendir(%s/%ld)\n", | 133 | dfprintk(VFS, "NFS: opendir(%s/%ld)\n", |
| 134 | inode->i_sb->s_id, inode->i_ino); | 134 | inode->i_sb->s_id, inode->i_ino); |
| 135 | 135 | ||
| 136 | lock_kernel(); | 136 | lock_kernel(); |
| 137 | /* Call generic open code in order to cache credentials */ | 137 | /* Call generic open code in order to cache credentials */ |
| 138 | if (!res) | 138 | res = nfs_open(inode, filp); |
| 139 | res = nfs_open(inode, filp); | ||
| 140 | unlock_kernel(); | 139 | unlock_kernel(); |
| 141 | return res; | 140 | return res; |
| 142 | } | 141 | } |
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 0f583cb16ddb..3c72b0c07283 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
| @@ -112,10 +112,9 @@ static void nfs_direct_write_complete(struct nfs_direct_req *dreq, struct inode | |||
| 112 | */ | 112 | */ |
| 113 | ssize_t nfs_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov, loff_t pos, unsigned long nr_segs) | 113 | ssize_t nfs_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov, loff_t pos, unsigned long nr_segs) |
| 114 | { | 114 | { |
| 115 | struct dentry *dentry = iocb->ki_filp->f_dentry; | ||
| 116 | |||
| 117 | dprintk("NFS: nfs_direct_IO (%s) off/no(%Ld/%lu) EINVAL\n", | 115 | dprintk("NFS: nfs_direct_IO (%s) off/no(%Ld/%lu) EINVAL\n", |
| 118 | dentry->d_name.name, (long long) pos, nr_segs); | 116 | iocb->ki_filp->f_dentry->d_name.name, |
| 117 | (long long) pos, nr_segs); | ||
| 119 | 118 | ||
| 120 | return -EINVAL; | 119 | return -EINVAL; |
| 121 | } | 120 | } |
| @@ -468,7 +467,6 @@ static const struct rpc_call_ops nfs_commit_direct_ops = { | |||
| 468 | static void nfs_direct_commit_schedule(struct nfs_direct_req *dreq) | 467 | static void nfs_direct_commit_schedule(struct nfs_direct_req *dreq) |
| 469 | { | 468 | { |
| 470 | struct nfs_write_data *data = dreq->commit_data; | 469 | struct nfs_write_data *data = dreq->commit_data; |
| 471 | struct rpc_task *task = &data->task; | ||
| 472 | 470 | ||
| 473 | data->inode = dreq->inode; | 471 | data->inode = dreq->inode; |
| 474 | data->cred = dreq->ctx->cred; | 472 | data->cred = dreq->ctx->cred; |
| @@ -489,7 +487,7 @@ static void nfs_direct_commit_schedule(struct nfs_direct_req *dreq) | |||
| 489 | /* Note: task.tk_ops->rpc_release will free dreq->commit_data */ | 487 | /* Note: task.tk_ops->rpc_release will free dreq->commit_data */ |
| 490 | dreq->commit_data = NULL; | 488 | dreq->commit_data = NULL; |
| 491 | 489 | ||
| 492 | dprintk("NFS: %5u initiated commit call\n", task->tk_pid); | 490 | dprintk("NFS: %5u initiated commit call\n", data->task.tk_pid); |
| 493 | 491 | ||
| 494 | lock_kernel(); | 492 | lock_kernel(); |
| 495 | rpc_execute(&data->task); | 493 | rpc_execute(&data->task); |
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index f1df2c8d9259..fade02c15e6e 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
| @@ -534,10 +534,9 @@ static int nfs_lock(struct file *filp, int cmd, struct file_lock *fl) | |||
| 534 | */ | 534 | */ |
| 535 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl) | 535 | static int nfs_flock(struct file *filp, int cmd, struct file_lock *fl) |
| 536 | { | 536 | { |
| 537 | struct inode * inode = filp->f_mapping->host; | ||
| 538 | |||
| 539 | dprintk("NFS: nfs_flock(f=%s/%ld, t=%x, fl=%x)\n", | 537 | dprintk("NFS: nfs_flock(f=%s/%ld, t=%x, fl=%x)\n", |
| 540 | inode->i_sb->s_id, inode->i_ino, | 538 | filp->f_dentry->d_inode->i_sb->s_id, |
| 539 | filp->f_dentry->d_inode->i_ino, | ||
| 541 | fl->fl_type, fl->fl_flags); | 540 | fl->fl_type, fl->fl_flags); |
| 542 | 541 | ||
| 543 | /* | 542 | /* |
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 2f7656b911b6..d0b991a92327 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
| @@ -700,12 +700,9 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) | |||
| 700 | /* | 700 | /* |
| 701 | * Display superblock I/O counters | 701 | * Display superblock I/O counters |
| 702 | */ | 702 | */ |
| 703 | for (cpu = 0; cpu < NR_CPUS; cpu++) { | 703 | for_each_possible_cpu(cpu) { |
| 704 | struct nfs_iostats *stats; | 704 | struct nfs_iostats *stats; |
| 705 | 705 | ||
| 706 | if (!cpu_possible(cpu)) | ||
| 707 | continue; | ||
| 708 | |||
| 709 | preempt_disable(); | 706 | preempt_disable(); |
| 710 | stats = per_cpu_ptr(nfss->io_stats, cpu); | 707 | stats = per_cpu_ptr(nfss->io_stats, cpu); |
| 711 | 708 | ||
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 47ece1dd3c67..d86c0db7b1e8 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
| @@ -1218,7 +1218,7 @@ out: | |||
| 1218 | return status; | 1218 | return status; |
| 1219 | } | 1219 | } |
| 1220 | 1220 | ||
| 1221 | static void nfs4_intent_set_file(struct nameidata *nd, struct dentry *dentry, struct nfs4_state *state) | 1221 | static int nfs4_intent_set_file(struct nameidata *nd, struct dentry *dentry, struct nfs4_state *state) |
| 1222 | { | 1222 | { |
| 1223 | struct file *filp; | 1223 | struct file *filp; |
| 1224 | 1224 | ||
| @@ -1227,8 +1227,10 @@ static void nfs4_intent_set_file(struct nameidata *nd, struct dentry *dentry, st | |||
| 1227 | struct nfs_open_context *ctx; | 1227 | struct nfs_open_context *ctx; |
| 1228 | ctx = (struct nfs_open_context *)filp->private_data; | 1228 | ctx = (struct nfs_open_context *)filp->private_data; |
| 1229 | ctx->state = state; | 1229 | ctx->state = state; |
| 1230 | } else | 1230 | return 0; |
| 1231 | nfs4_close_state(state, nd->intent.open.flags); | 1231 | } |
| 1232 | nfs4_close_state(state, nd->intent.open.flags); | ||
| 1233 | return PTR_ERR(filp); | ||
| 1232 | } | 1234 | } |
| 1233 | 1235 | ||
| 1234 | struct dentry * | 1236 | struct dentry * |
| @@ -1835,7 +1837,7 @@ nfs4_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr, | |||
| 1835 | nfs_setattr_update_inode(state->inode, sattr); | 1837 | nfs_setattr_update_inode(state->inode, sattr); |
| 1836 | } | 1838 | } |
| 1837 | if (status == 0 && nd != NULL && (nd->flags & LOOKUP_OPEN)) | 1839 | if (status == 0 && nd != NULL && (nd->flags & LOOKUP_OPEN)) |
| 1838 | nfs4_intent_set_file(nd, dentry, state); | 1840 | status = nfs4_intent_set_file(nd, dentry, state); |
| 1839 | else | 1841 | else |
| 1840 | nfs4_close_state(state, flags); | 1842 | nfs4_close_state(state, flags); |
| 1841 | out: | 1843 | out: |
diff --git a/include/linux/sunrpc/metrics.h b/include/linux/sunrpc/metrics.h index 8f96e9dc369a..77f78e56c481 100644 --- a/include/linux/sunrpc/metrics.h +++ b/include/linux/sunrpc/metrics.h | |||
| @@ -69,9 +69,21 @@ struct rpc_clnt; | |||
| 69 | /* | 69 | /* |
| 70 | * EXPORTed functions for managing rpc_iostats structures | 70 | * EXPORTed functions for managing rpc_iostats structures |
| 71 | */ | 71 | */ |
| 72 | |||
| 73 | #ifdef CONFIG_PROC_FS | ||
| 74 | |||
| 72 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); | 75 | struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *); |
| 73 | void rpc_count_iostats(struct rpc_task *); | 76 | void rpc_count_iostats(struct rpc_task *); |
| 74 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); | 77 | void rpc_print_iostats(struct seq_file *, struct rpc_clnt *); |
| 75 | void rpc_free_iostats(struct rpc_iostats *); | 78 | void rpc_free_iostats(struct rpc_iostats *); |
| 76 | 79 | ||
| 80 | #else /* CONFIG_PROC_FS */ | ||
| 81 | |||
| 82 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } | ||
| 83 | static inline void rpc_count_iostats(struct rpc_task *task) {} | ||
| 84 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} | ||
| 85 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} | ||
| 86 | |||
| 87 | #endif /* CONFIG_PROC_FS */ | ||
| 88 | |||
| 77 | #endif /* _LINUX_SUNRPC_METRICS_H */ | 89 | #endif /* _LINUX_SUNRPC_METRICS_H */ |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 7eebbab7160b..e8bbe8118de8 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -53,6 +53,7 @@ struct rpc_timeout { | |||
| 53 | 53 | ||
| 54 | struct rpc_task; | 54 | struct rpc_task; |
| 55 | struct rpc_xprt; | 55 | struct rpc_xprt; |
| 56 | struct seq_file; | ||
| 56 | 57 | ||
| 57 | /* | 58 | /* |
| 58 | * This describes a complete RPC request | 59 | * This describes a complete RPC request |
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/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); |
