aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2007-06-05 10:42:27 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-07-10 23:40:23 -0400
commit88be9f990fe70f0f177ef44a16a477599e91f825 (patch)
treed48ed0c934fc20dc3f7cacfc3b1eca3058246b65
parentde05a0cc2a2ae16eb8d8dbf88fe728ace45beb9a (diff)
NFS: Replace vfsmount and dentry in nfs_open_context with struct path
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/delegation.c2
-rw-r--r--fs/nfs/direct.c4
-rw-r--r--fs/nfs/inode.c10
-rw-r--r--fs/nfs/nfs4proc.c6
-rw-r--r--fs/nfs/pagelist.c6
-rw-r--r--fs/nfs/read.c6
-rw-r--r--fs/nfs/write.c20
-rw-r--r--include/linux/nfs_fs.h4
8 files changed, 29 insertions, 29 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 7f37d1bea83f..b47c156a711d 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -74,7 +74,7 @@ again:
74 continue; 74 continue;
75 get_nfs_open_context(ctx); 75 get_nfs_open_context(ctx);
76 spin_unlock(&inode->i_lock); 76 spin_unlock(&inode->i_lock);
77 err = nfs4_open_delegation_recall(ctx->dentry, state); 77 err = nfs4_open_delegation_recall(ctx->path.dentry, state);
78 if (err >= 0) 78 if (err >= 0)
79 err = nfs_delegation_claim_locks(ctx, state); 79 err = nfs_delegation_claim_locks(ctx, state);
80 put_nfs_open_context(ctx); 80 put_nfs_open_context(ctx);
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index f1b153ad645b..a5c82b6f3b45 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -266,7 +266,7 @@ static const struct rpc_call_ops nfs_read_direct_ops = {
266static ssize_t nfs_direct_read_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos) 266static ssize_t nfs_direct_read_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos)
267{ 267{
268 struct nfs_open_context *ctx = dreq->ctx; 268 struct nfs_open_context *ctx = dreq->ctx;
269 struct inode *inode = ctx->dentry->d_inode; 269 struct inode *inode = ctx->path.dentry->d_inode;
270 size_t rsize = NFS_SERVER(inode)->rsize; 270 size_t rsize = NFS_SERVER(inode)->rsize;
271 unsigned int pgbase; 271 unsigned int pgbase;
272 int result; 272 int result;
@@ -606,7 +606,7 @@ static const struct rpc_call_ops nfs_write_direct_ops = {
606static ssize_t nfs_direct_write_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos, int sync) 606static ssize_t nfs_direct_write_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos, int sync)
607{ 607{
608 struct nfs_open_context *ctx = dreq->ctx; 608 struct nfs_open_context *ctx = dreq->ctx;
609 struct inode *inode = ctx->dentry->d_inode; 609 struct inode *inode = ctx->path.dentry->d_inode;
610 size_t wsize = NFS_SERVER(inode)->wsize; 610 size_t wsize = NFS_SERVER(inode)->wsize;
611 unsigned int pgbase; 611 unsigned int pgbase;
612 int result; 612 int result;
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index bd9f5a836592..cc7a9064be90 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -462,8 +462,8 @@ static struct nfs_open_context *alloc_nfs_open_context(struct vfsmount *mnt, str
462 ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); 462 ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
463 if (ctx != NULL) { 463 if (ctx != NULL) {
464 atomic_set(&ctx->count, 1); 464 atomic_set(&ctx->count, 1);
465 ctx->dentry = dget(dentry); 465 ctx->path.dentry = dget(dentry);
466 ctx->vfsmnt = mntget(mnt); 466 ctx->path.mnt = mntget(mnt);
467 ctx->cred = get_rpccred(cred); 467 ctx->cred = get_rpccred(cred);
468 ctx->state = NULL; 468 ctx->state = NULL;
469 ctx->lockowner = current->files; 469 ctx->lockowner = current->files;
@@ -484,7 +484,7 @@ void put_nfs_open_context(struct nfs_open_context *ctx)
484{ 484{
485 if (atomic_dec_and_test(&ctx->count)) { 485 if (atomic_dec_and_test(&ctx->count)) {
486 if (!list_empty(&ctx->list)) { 486 if (!list_empty(&ctx->list)) {
487 struct inode *inode = ctx->dentry->d_inode; 487 struct inode *inode = ctx->path.dentry->d_inode;
488 spin_lock(&inode->i_lock); 488 spin_lock(&inode->i_lock);
489 list_del(&ctx->list); 489 list_del(&ctx->list);
490 spin_unlock(&inode->i_lock); 490 spin_unlock(&inode->i_lock);
@@ -493,8 +493,8 @@ void put_nfs_open_context(struct nfs_open_context *ctx)
493 nfs4_close_state(ctx->state, ctx->mode); 493 nfs4_close_state(ctx->state, ctx->mode);
494 if (ctx->cred != NULL) 494 if (ctx->cred != NULL)
495 put_rpccred(ctx->cred); 495 put_rpccred(ctx->cred);
496 dput(ctx->dentry); 496 dput(ctx->path.dentry);
497 mntput(ctx->vfsmnt); 497 mntput(ctx->path.mnt);
498 kfree(ctx); 498 kfree(ctx);
499 } 499 }
500} 500}
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 648e0ac0f90e..4d641cbdbde1 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -512,7 +512,7 @@ static int nfs4_open_reclaim(struct nfs4_state_owner *sp, struct nfs4_state *sta
512 ctx = nfs4_state_find_open_context(state); 512 ctx = nfs4_state_find_open_context(state);
513 if (IS_ERR(ctx)) 513 if (IS_ERR(ctx))
514 return PTR_ERR(ctx); 514 return PTR_ERR(ctx);
515 ret = nfs4_do_open_reclaim(sp, state, ctx->dentry); 515 ret = nfs4_do_open_reclaim(sp, state, ctx->path.dentry);
516 put_nfs_open_context(ctx); 516 put_nfs_open_context(ctx);
517 return ret; 517 return ret;
518} 518}
@@ -862,7 +862,7 @@ static int nfs4_open_expired(struct nfs4_state_owner *sp, struct nfs4_state *sta
862 ctx = nfs4_state_find_open_context(state); 862 ctx = nfs4_state_find_open_context(state);
863 if (IS_ERR(ctx)) 863 if (IS_ERR(ctx))
864 return PTR_ERR(ctx); 864 return PTR_ERR(ctx);
865 ret = nfs4_do_open_expired(sp, state, ctx->dentry); 865 ret = nfs4_do_open_expired(sp, state, ctx->path.dentry);
866 put_nfs_open_context(ctx); 866 put_nfs_open_context(ctx);
867 return ret; 867 return ret;
868} 868}
@@ -3285,7 +3285,7 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata)
3285 memcpy(data->lsp->ls_stateid.data, data->res.stateid.data, 3285 memcpy(data->lsp->ls_stateid.data, data->res.stateid.data,
3286 sizeof(data->lsp->ls_stateid.data)); 3286 sizeof(data->lsp->ls_stateid.data));
3287 data->lsp->ls_flags |= NFS_LOCK_INITIALIZED; 3287 data->lsp->ls_flags |= NFS_LOCK_INITIALIZED;
3288 renew_lease(NFS_SERVER(data->ctx->dentry->d_inode), data->timestamp); 3288 renew_lease(NFS_SERVER(data->ctx->path.dentry->d_inode), data->timestamp);
3289 } 3289 }
3290 nfs_increment_lock_seqid(data->rpc_status, data->arg.lock_seqid); 3290 nfs_increment_lock_seqid(data->rpc_status, data->arg.lock_seqid);
3291out: 3291out:
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index c5bb51a29e80..f8a4ba533930 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -114,7 +114,7 @@ void nfs_unlock_request(struct nfs_page *req)
114 */ 114 */
115int nfs_set_page_writeback_locked(struct nfs_page *req) 115int nfs_set_page_writeback_locked(struct nfs_page *req)
116{ 116{
117 struct nfs_inode *nfsi = NFS_I(req->wb_context->dentry->d_inode); 117 struct nfs_inode *nfsi = NFS_I(req->wb_context->path.dentry->d_inode);
118 118
119 if (!nfs_lock_request(req)) 119 if (!nfs_lock_request(req))
120 return 0; 120 return 0;
@@ -127,7 +127,7 @@ int nfs_set_page_writeback_locked(struct nfs_page *req)
127 */ 127 */
128void nfs_clear_page_writeback(struct nfs_page *req) 128void nfs_clear_page_writeback(struct nfs_page *req)
129{ 129{
130 struct nfs_inode *nfsi = NFS_I(req->wb_context->dentry->d_inode); 130 struct nfs_inode *nfsi = NFS_I(req->wb_context->path.dentry->d_inode);
131 131
132 if (req->wb_page != NULL) { 132 if (req->wb_page != NULL) {
133 spin_lock(&nfsi->req_lock); 133 spin_lock(&nfsi->req_lock);
@@ -193,7 +193,7 @@ static int nfs_wait_bit_interruptible(void *word)
193int 193int
194nfs_wait_on_request(struct nfs_page *req) 194nfs_wait_on_request(struct nfs_page *req)
195{ 195{
196 struct rpc_clnt *clnt = NFS_CLIENT(req->wb_context->dentry->d_inode); 196 struct rpc_clnt *clnt = NFS_CLIENT(req->wb_context->path.dentry->d_inode);
197 sigset_t oldmask; 197 sigset_t oldmask;
198 int ret = 0; 198 int ret = 0;
199 199
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index c07d0d10d9ed..6ae2e58ed05a 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -145,8 +145,8 @@ static void nfs_readpage_release(struct nfs_page *req)
145 unlock_page(req->wb_page); 145 unlock_page(req->wb_page);
146 146
147 dprintk("NFS: read done (%s/%Ld %d@%Ld)\n", 147 dprintk("NFS: read done (%s/%Ld %d@%Ld)\n",
148 req->wb_context->dentry->d_inode->i_sb->s_id, 148 req->wb_context->path.dentry->d_inode->i_sb->s_id,
149 (long long)NFS_FILEID(req->wb_context->dentry->d_inode), 149 (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode),
150 req->wb_bytes, 150 req->wb_bytes,
151 (long long)req_offset(req)); 151 (long long)req_offset(req));
152 nfs_clear_request(req); 152 nfs_clear_request(req);
@@ -164,7 +164,7 @@ static void nfs_read_rpcsetup(struct nfs_page *req, struct nfs_read_data *data,
164 int flags; 164 int flags;
165 165
166 data->req = req; 166 data->req = req;
167 data->inode = inode = req->wb_context->dentry->d_inode; 167 data->inode = inode = req->wb_context->path.dentry->d_inode;
168 data->cred = req->wb_context->cred; 168 data->cred = req->wb_context->cred;
169 169
170 data->args.fh = NFS_FH(inode); 170 data->args.fh = NFS_FH(inode);
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index b853959d964d..9e7c21da864f 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -407,7 +407,7 @@ static int nfs_inode_add_request(struct inode *inode, struct nfs_page *req)
407 */ 407 */
408static void nfs_inode_remove_request(struct nfs_page *req) 408static void nfs_inode_remove_request(struct nfs_page *req)
409{ 409{
410 struct inode *inode = req->wb_context->dentry->d_inode; 410 struct inode *inode = req->wb_context->path.dentry->d_inode;
411 struct nfs_inode *nfsi = NFS_I(inode); 411 struct nfs_inode *nfsi = NFS_I(inode);
412 412
413 BUG_ON (!NFS_WBACK_BUSY(req)); 413 BUG_ON (!NFS_WBACK_BUSY(req));
@@ -455,7 +455,7 @@ nfs_dirty_request(struct nfs_page *req)
455static void 455static void
456nfs_mark_request_commit(struct nfs_page *req) 456nfs_mark_request_commit(struct nfs_page *req)
457{ 457{
458 struct inode *inode = req->wb_context->dentry->d_inode; 458 struct inode *inode = req->wb_context->path.dentry->d_inode;
459 struct nfs_inode *nfsi = NFS_I(inode); 459 struct nfs_inode *nfsi = NFS_I(inode);
460 460
461 spin_lock(&nfsi->req_lock); 461 spin_lock(&nfsi->req_lock);
@@ -789,7 +789,7 @@ static void nfs_write_rpcsetup(struct nfs_page *req,
789 * NB: take care not to mess about with data->commit et al. */ 789 * NB: take care not to mess about with data->commit et al. */
790 790
791 data->req = req; 791 data->req = req;
792 data->inode = inode = req->wb_context->dentry->d_inode; 792 data->inode = inode = req->wb_context->path.dentry->d_inode;
793 data->cred = req->wb_context->cred; 793 data->cred = req->wb_context->cred;
794 794
795 data->args.fh = NFS_FH(inode); 795 data->args.fh = NFS_FH(inode);
@@ -957,8 +957,8 @@ static void nfs_writeback_done_partial(struct rpc_task *task, void *calldata)
957 struct page *page = req->wb_page; 957 struct page *page = req->wb_page;
958 958
959 dprintk("NFS: write (%s/%Ld %d@%Ld)", 959 dprintk("NFS: write (%s/%Ld %d@%Ld)",
960 req->wb_context->dentry->d_inode->i_sb->s_id, 960 req->wb_context->path.dentry->d_inode->i_sb->s_id,
961 (long long)NFS_FILEID(req->wb_context->dentry->d_inode), 961 (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode),
962 req->wb_bytes, 962 req->wb_bytes,
963 (long long)req_offset(req)); 963 (long long)req_offset(req));
964 964
@@ -1023,8 +1023,8 @@ static void nfs_writeback_done_full(struct rpc_task *task, void *calldata)
1023 page = req->wb_page; 1023 page = req->wb_page;
1024 1024
1025 dprintk("NFS: write (%s/%Ld %d@%Ld)", 1025 dprintk("NFS: write (%s/%Ld %d@%Ld)",
1026 req->wb_context->dentry->d_inode->i_sb->s_id, 1026 req->wb_context->path.dentry->d_inode->i_sb->s_id,
1027 (long long)NFS_FILEID(req->wb_context->dentry->d_inode), 1027 (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode),
1028 req->wb_bytes, 1028 req->wb_bytes,
1029 (long long)req_offset(req)); 1029 (long long)req_offset(req));
1030 1030
@@ -1162,7 +1162,7 @@ static void nfs_commit_rpcsetup(struct list_head *head,
1162 1162
1163 list_splice_init(head, &data->pages); 1163 list_splice_init(head, &data->pages);
1164 first = nfs_list_entry(data->pages.next); 1164 first = nfs_list_entry(data->pages.next);
1165 inode = first->wb_context->dentry->d_inode; 1165 inode = first->wb_context->path.dentry->d_inode;
1166 1166
1167 data->inode = inode; 1167 data->inode = inode;
1168 data->cred = first->wb_context->cred; 1168 data->cred = first->wb_context->cred;
@@ -1239,8 +1239,8 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
1239 dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); 1239 dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
1240 1240
1241 dprintk("NFS: commit (%s/%Ld %d@%Ld)", 1241 dprintk("NFS: commit (%s/%Ld %d@%Ld)",
1242 req->wb_context->dentry->d_inode->i_sb->s_id, 1242 req->wb_context->path.dentry->d_inode->i_sb->s_id,
1243 (long long)NFS_FILEID(req->wb_context->dentry->d_inode), 1243 (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode),
1244 req->wb_bytes, 1244 req->wb_bytes,
1245 (long long)req_offset(req)); 1245 (long long)req_offset(req));
1246 if (task->tk_status < 0) { 1246 if (task->tk_status < 0) {
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 0543439a97af..07eea8f64ecf 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -31,6 +31,7 @@
31 31
32#include <linux/in.h> 32#include <linux/in.h>
33#include <linux/mm.h> 33#include <linux/mm.h>
34#include <linux/namei.h>
34#include <linux/pagemap.h> 35#include <linux/pagemap.h>
35#include <linux/rbtree.h> 36#include <linux/rbtree.h>
36#include <linux/rwsem.h> 37#include <linux/rwsem.h>
@@ -70,8 +71,7 @@ struct nfs_access_entry {
70struct nfs4_state; 71struct nfs4_state;
71struct nfs_open_context { 72struct nfs_open_context {
72 atomic_t count; 73 atomic_t count;
73 struct vfsmount *vfsmnt; 74 struct path path;
74 struct dentry *dentry;
75 struct rpc_cred *cred; 75 struct rpc_cred *cred;
76 struct nfs4_state *state; 76 struct nfs4_state *state;
77 fl_owner_t lockowner; 77 fl_owner_t lockowner;