aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/lockd/svcsubs.c43
-rw-r--r--fs/nfs/direct.c10
-rw-r--r--fs/nfs/write.c12
-rw-r--r--net/sunrpc/auth.c15
4 files changed, 51 insertions, 29 deletions
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
index de7536358c7c..62f4a385177f 100644
--- a/fs/lockd/svcsubs.c
+++ b/fs/lockd/svcsubs.c
@@ -30,6 +30,36 @@
30static struct nlm_file * nlm_files[FILE_NRHASH]; 30static struct nlm_file * nlm_files[FILE_NRHASH];
31static DECLARE_MUTEX(nlm_file_sema); 31static DECLARE_MUTEX(nlm_file_sema);
32 32
33#ifdef NFSD_DEBUG
34static inline void nlm_debug_print_fh(char *msg, struct nfs_fh *f)
35{
36 u32 *fhp = (u32*)f->data;
37
38 /* print the first 32 bytes of the fh */
39 dprintk("lockd: %s (%08x %08x %08x %08x %08x %08x %08x %08x)\n",
40 msg, fhp[0], fhp[1], fhp[2], fhp[3],
41 fhp[4], fhp[5], fhp[6], fhp[7]);
42}
43
44static inline void nlm_debug_print_file(char *msg, struct nlm_file *file)
45{
46 struct inode *inode = file->f_file->f_dentry->d_inode;
47
48 dprintk("lockd: %s %s/%ld\n",
49 msg, inode->i_sb->s_id, inode->i_ino);
50}
51#else
52static inline void nlm_debug_print_fh(char *msg, struct nfs_fh *f)
53{
54 return;
55}
56
57static inline void nlm_debug_print_file(char *msg, struct nlm_file *file)
58{
59 return;
60}
61#endif
62
33static inline unsigned int file_hash(struct nfs_fh *f) 63static inline unsigned int file_hash(struct nfs_fh *f)
34{ 64{
35 unsigned int tmp=0; 65 unsigned int tmp=0;
@@ -55,11 +85,8 @@ nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,
55 struct nlm_file *file; 85 struct nlm_file *file;
56 unsigned int hash; 86 unsigned int hash;
57 u32 nfserr; 87 u32 nfserr;
58 u32 *fhp = (u32*)f->data;
59
60 dprintk("lockd: nlm_file_lookup(%08x %08x %08x %08x %08x %08x)\n",
61 fhp[0], fhp[1], fhp[2], fhp[3], fhp[4], fhp[5]);
62 88
89 nlm_debug_print_fh("nlm_file_lookup", f);
63 90
64 hash = file_hash(f); 91 hash = file_hash(f);
65 92
@@ -70,8 +97,7 @@ nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,
70 if (!nfs_compare_fh(&file->f_handle, f)) 97 if (!nfs_compare_fh(&file->f_handle, f))
71 goto found; 98 goto found;
72 99
73 dprintk("lockd: creating file for (%08x %08x %08x %08x %08x %08x)\n", 100 nlm_debug_print_fh("creating file for", f);
74 fhp[0], fhp[1], fhp[2], fhp[3], fhp[4], fhp[5]);
75 101
76 nfserr = nlm_lck_denied_nolocks; 102 nfserr = nlm_lck_denied_nolocks;
77 file = (struct nlm_file *) kmalloc(sizeof(*file), GFP_KERNEL); 103 file = (struct nlm_file *) kmalloc(sizeof(*file), GFP_KERNEL);
@@ -124,11 +150,10 @@ out_free:
124static inline void 150static inline void
125nlm_delete_file(struct nlm_file *file) 151nlm_delete_file(struct nlm_file *file)
126{ 152{
127 struct inode *inode = file->f_file->f_dentry->d_inode;
128 struct nlm_file **fp, *f; 153 struct nlm_file **fp, *f;
129 154
130 dprintk("lockd: closing file %s/%ld\n", 155 nlm_debug_print_file("closing file", file);
131 inode->i_sb->s_id, inode->i_ino); 156
132 fp = nlm_files + file->f_hash; 157 fp = nlm_files + file->f_hash;
133 while ((f = *fp) != NULL) { 158 while ((f = *fp) != NULL) {
134 if (f == file) { 159 if (f == file) {
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 6537f2c4ae44..b497c71384e8 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -655,7 +655,6 @@ nfs_file_direct_read(struct kiocb *iocb, char __user *buf, size_t count, loff_t
655 struct file *file = iocb->ki_filp; 655 struct file *file = iocb->ki_filp;
656 struct nfs_open_context *ctx = 656 struct nfs_open_context *ctx =
657 (struct nfs_open_context *) file->private_data; 657 (struct nfs_open_context *) file->private_data;
658 struct dentry *dentry = file->f_dentry;
659 struct address_space *mapping = file->f_mapping; 658 struct address_space *mapping = file->f_mapping;
660 struct inode *inode = mapping->host; 659 struct inode *inode = mapping->host;
661 struct iovec iov = { 660 struct iovec iov = {
@@ -664,7 +663,8 @@ nfs_file_direct_read(struct kiocb *iocb, char __user *buf, size_t count, loff_t
664 }; 663 };
665 664
666 dprintk("nfs: direct read(%s/%s, %lu@%lu)\n", 665 dprintk("nfs: direct read(%s/%s, %lu@%lu)\n",
667 dentry->d_parent->d_name.name, dentry->d_name.name, 666 file->f_dentry->d_parent->d_name.name,
667 file->f_dentry->d_name.name,
668 (unsigned long) count, (unsigned long) pos); 668 (unsigned long) count, (unsigned long) pos);
669 669
670 if (!is_sync_kiocb(iocb)) 670 if (!is_sync_kiocb(iocb))
@@ -730,7 +730,6 @@ nfs_file_direct_write(struct kiocb *iocb, const char __user *buf, size_t count,
730 struct file *file = iocb->ki_filp; 730 struct file *file = iocb->ki_filp;
731 struct nfs_open_context *ctx = 731 struct nfs_open_context *ctx =
732 (struct nfs_open_context *) file->private_data; 732 (struct nfs_open_context *) file->private_data;
733 struct dentry *dentry = file->f_dentry;
734 struct address_space *mapping = file->f_mapping; 733 struct address_space *mapping = file->f_mapping;
735 struct inode *inode = mapping->host; 734 struct inode *inode = mapping->host;
736 struct iovec iov = { 735 struct iovec iov = {
@@ -739,8 +738,9 @@ nfs_file_direct_write(struct kiocb *iocb, const char __user *buf, size_t count,
739 }; 738 };
740 739
741 dfprintk(VFS, "nfs: direct write(%s/%s(%ld), %lu@%lu)\n", 740 dfprintk(VFS, "nfs: direct write(%s/%s(%ld), %lu@%lu)\n",
742 dentry->d_parent->d_name.name, dentry->d_name.name, 741 file->f_dentry->d_parent->d_name.name,
743 inode->i_ino, (unsigned long) count, (unsigned long) pos); 742 file->f_dentry->d_name.name, inode->i_ino,
743 (unsigned long) count, (unsigned long) pos);
744 744
745 if (!is_sync_kiocb(iocb)) 745 if (!is_sync_kiocb(iocb))
746 goto out; 746 goto out;
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 1bdbd4f9fdd2..8f71e766cc5d 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -734,14 +734,14 @@ int nfs_updatepage(struct file *file, struct page *page,
734 unsigned int offset, unsigned int count) 734 unsigned int offset, unsigned int count)
735{ 735{
736 struct nfs_open_context *ctx = (struct nfs_open_context *)file->private_data; 736 struct nfs_open_context *ctx = (struct nfs_open_context *)file->private_data;
737 struct dentry *dentry = file->f_dentry;
738 struct inode *inode = page->mapping->host; 737 struct inode *inode = page->mapping->host;
739 struct nfs_page *req; 738 struct nfs_page *req;
740 int status = 0; 739 int status = 0;
741 740
742 dprintk("NFS: nfs_updatepage(%s/%s %d@%Ld)\n", 741 dprintk("NFS: nfs_updatepage(%s/%s %d@%Ld)\n",
743 dentry->d_parent->d_name.name, dentry->d_name.name, 742 file->f_dentry->d_parent->d_name.name,
744 count, (long long)(page_offset(page) +offset)); 743 file->f_dentry->d_name.name, count,
744 (long long)(page_offset(page) +offset));
745 745
746 if (IS_SYNC(inode)) { 746 if (IS_SYNC(inode)) {
747 status = nfs_writepage_sync(ctx, inode, page, offset, count, 0); 747 status = nfs_writepage_sync(ctx, inode, page, offset, count, 0);
@@ -850,7 +850,6 @@ static void nfs_write_rpcsetup(struct nfs_page *req,
850 unsigned int count, unsigned int offset, 850 unsigned int count, unsigned int offset,
851 int how) 851 int how)
852{ 852{
853 struct rpc_task *task = &data->task;
854 struct inode *inode; 853 struct inode *inode;
855 854
856 /* Set up the RPC argument and reply structs 855 /* Set up the RPC argument and reply structs
@@ -881,7 +880,7 @@ static void nfs_write_rpcsetup(struct nfs_page *req,
881 data->task.tk_release = nfs_writedata_release; 880 data->task.tk_release = nfs_writedata_release;
882 881
883 dprintk("NFS: %4d initiated write call (req %s/%Ld, %u bytes @ offset %Lu)\n", 882 dprintk("NFS: %4d initiated write call (req %s/%Ld, %u bytes @ offset %Lu)\n",
884 task->tk_pid, 883 data->task.tk_pid,
885 inode->i_sb->s_id, 884 inode->i_sb->s_id,
886 (long long)NFS_FILEID(inode), 885 (long long)NFS_FILEID(inode),
887 count, 886 count,
@@ -1217,7 +1216,6 @@ static void nfs_commit_release(struct rpc_task *task)
1217static void nfs_commit_rpcsetup(struct list_head *head, 1216static void nfs_commit_rpcsetup(struct list_head *head,
1218 struct nfs_write_data *data, int how) 1217 struct nfs_write_data *data, int how)
1219{ 1218{
1220 struct rpc_task *task = &data->task;
1221 struct nfs_page *first; 1219 struct nfs_page *first;
1222 struct inode *inode; 1220 struct inode *inode;
1223 1221
@@ -1248,7 +1246,7 @@ static void nfs_commit_rpcsetup(struct list_head *head,
1248 /* Release requests */ 1246 /* Release requests */
1249 data->task.tk_release = nfs_commit_release; 1247 data->task.tk_release = nfs_commit_release;
1250 1248
1251 dprintk("NFS: %4d initiated commit call\n", task->tk_pid); 1249 dprintk("NFS: %4d initiated commit call\n", data->task.tk_pid);
1252} 1250}
1253 1251
1254/* 1252/*
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
index a415d99c394d..8c7756036e95 100644
--- a/net/sunrpc/auth.c
+++ b/net/sunrpc/auth.c
@@ -299,11 +299,10 @@ put_rpccred(struct rpc_cred *cred)
299void 299void
300rpcauth_unbindcred(struct rpc_task *task) 300rpcauth_unbindcred(struct rpc_task *task)
301{ 301{
302 struct rpc_auth *auth = task->tk_auth;
303 struct rpc_cred *cred = task->tk_msg.rpc_cred; 302 struct rpc_cred *cred = task->tk_msg.rpc_cred;
304 303
305 dprintk("RPC: %4d releasing %s cred %p\n", 304 dprintk("RPC: %4d releasing %s cred %p\n",
306 task->tk_pid, auth->au_ops->au_name, cred); 305 task->tk_pid, task->tk_auth->au_ops->au_name, cred);
307 306
308 put_rpccred(cred); 307 put_rpccred(cred);
309 task->tk_msg.rpc_cred = NULL; 308 task->tk_msg.rpc_cred = NULL;
@@ -312,22 +311,22 @@ rpcauth_unbindcred(struct rpc_task *task)
312u32 * 311u32 *
313rpcauth_marshcred(struct rpc_task *task, u32 *p) 312rpcauth_marshcred(struct rpc_task *task, u32 *p)
314{ 313{
315 struct rpc_auth *auth = task->tk_auth;
316 struct rpc_cred *cred = task->tk_msg.rpc_cred; 314 struct rpc_cred *cred = task->tk_msg.rpc_cred;
317 315
318 dprintk("RPC: %4d marshaling %s cred %p\n", 316 dprintk("RPC: %4d marshaling %s cred %p\n",
319 task->tk_pid, auth->au_ops->au_name, cred); 317 task->tk_pid, task->tk_auth->au_ops->au_name, cred);
318
320 return cred->cr_ops->crmarshal(task, p); 319 return cred->cr_ops->crmarshal(task, p);
321} 320}
322 321
323u32 * 322u32 *
324rpcauth_checkverf(struct rpc_task *task, u32 *p) 323rpcauth_checkverf(struct rpc_task *task, u32 *p)
325{ 324{
326 struct rpc_auth *auth = task->tk_auth;
327 struct rpc_cred *cred = task->tk_msg.rpc_cred; 325 struct rpc_cred *cred = task->tk_msg.rpc_cred;
328 326
329 dprintk("RPC: %4d validating %s cred %p\n", 327 dprintk("RPC: %4d validating %s cred %p\n",
330 task->tk_pid, auth->au_ops->au_name, cred); 328 task->tk_pid, task->tk_auth->au_ops->au_name, cred);
329
331 return cred->cr_ops->crvalidate(task, p); 330 return cred->cr_ops->crvalidate(task, p);
332} 331}
333 332
@@ -363,12 +362,12 @@ rpcauth_unwrap_resp(struct rpc_task *task, kxdrproc_t decode, void *rqstp,
363int 362int
364rpcauth_refreshcred(struct rpc_task *task) 363rpcauth_refreshcred(struct rpc_task *task)
365{ 364{
366 struct rpc_auth *auth = task->tk_auth;
367 struct rpc_cred *cred = task->tk_msg.rpc_cred; 365 struct rpc_cred *cred = task->tk_msg.rpc_cred;
368 int err; 366 int err;
369 367
370 dprintk("RPC: %4d refreshing %s cred %p\n", 368 dprintk("RPC: %4d refreshing %s cred %p\n",
371 task->tk_pid, auth->au_ops->au_name, cred); 369 task->tk_pid, task->tk_auth->au_ops->au_name, cred);
370
372 err = cred->cr_ops->crrefresh(task); 371 err = cred->cr_ops->crrefresh(task);
373 if (err < 0) 372 if (err < 0)
374 task->tk_status = err; 373 task->tk_status = err;