diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-06-05 10:42:27 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-07-10 23:40:23 -0400 |
commit | 88be9f990fe70f0f177ef44a16a477599e91f825 (patch) | |
tree | d48ed0c934fc20dc3f7cacfc3b1eca3058246b65 | |
parent | de05a0cc2a2ae16eb8d8dbf88fe728ace45beb9a (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.c | 2 | ||||
-rw-r--r-- | fs/nfs/direct.c | 4 | ||||
-rw-r--r-- | fs/nfs/inode.c | 10 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 6 | ||||
-rw-r--r-- | fs/nfs/pagelist.c | 6 | ||||
-rw-r--r-- | fs/nfs/read.c | 6 | ||||
-rw-r--r-- | fs/nfs/write.c | 20 | ||||
-rw-r--r-- | include/linux/nfs_fs.h | 4 |
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 = { | |||
266 | static ssize_t nfs_direct_read_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos) | 266 | static 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 = { | |||
606 | static ssize_t nfs_direct_write_schedule(struct nfs_direct_req *dreq, unsigned long user_addr, size_t count, loff_t pos, int sync) | 606 | static 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); |
3291 | out: | 3291 | out: |
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 | */ |
115 | int nfs_set_page_writeback_locked(struct nfs_page *req) | 115 | int 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 | */ |
128 | void nfs_clear_page_writeback(struct nfs_page *req) | 128 | void 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) | |||
193 | int | 193 | int |
194 | nfs_wait_on_request(struct nfs_page *req) | 194 | nfs_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 | */ |
408 | static void nfs_inode_remove_request(struct nfs_page *req) | 408 | static 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) | |||
455 | static void | 455 | static void |
456 | nfs_mark_request_commit(struct nfs_page *req) | 456 | nfs_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 { | |||
70 | struct nfs4_state; | 71 | struct nfs4_state; |
71 | struct nfs_open_context { | 72 | struct 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; |