diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-04-18 12:20:10 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-04-19 13:23:00 -0400 |
commit | 05ffe24f5290dc095f98fbaf84afe51ef404ccc5 (patch) | |
tree | 555ddc0f2266861b3532ea1ab9d70def1176ab55 /fs/nfs | |
parent | ca138f368a36dba40d3ef4a53d64af2011cda3c7 (diff) |
NFSv4: Ensure that the LOCK code sets exception->inode
All callers of nfs4_handle_exception() that need to handle
NFS4ERR_OPENMODE correctly should set exception->inode
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index f82bde005a82..3c787d02131b 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -4558,7 +4558,9 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f | |||
4558 | static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) | 4558 | static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) |
4559 | { | 4559 | { |
4560 | struct nfs_server *server = NFS_SERVER(state->inode); | 4560 | struct nfs_server *server = NFS_SERVER(state->inode); |
4561 | struct nfs4_exception exception = { }; | 4561 | struct nfs4_exception exception = { |
4562 | .inode = state->inode, | ||
4563 | }; | ||
4562 | int err; | 4564 | int err; |
4563 | 4565 | ||
4564 | do { | 4566 | do { |
@@ -4576,7 +4578,9 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request | |||
4576 | static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) | 4578 | static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) |
4577 | { | 4579 | { |
4578 | struct nfs_server *server = NFS_SERVER(state->inode); | 4580 | struct nfs_server *server = NFS_SERVER(state->inode); |
4579 | struct nfs4_exception exception = { }; | 4581 | struct nfs4_exception exception = { |
4582 | .inode = state->inode, | ||
4583 | }; | ||
4580 | int err; | 4584 | int err; |
4581 | 4585 | ||
4582 | err = nfs4_set_lock_state(state, request); | 4586 | err = nfs4_set_lock_state(state, request); |
@@ -4676,6 +4680,7 @@ static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock * | |||
4676 | { | 4680 | { |
4677 | struct nfs4_exception exception = { | 4681 | struct nfs4_exception exception = { |
4678 | .state = state, | 4682 | .state = state, |
4683 | .inode = state->inode, | ||
4679 | }; | 4684 | }; |
4680 | int err; | 4685 | int err; |
4681 | 4686 | ||