| From 05ffe24f5290dc095f98fbaf84afe51ef404ccc5 Mon Sep 17 00:00:00 2001 |
| From: Trond Myklebust <Trond.Myklebust@netapp.com> |
| Date: Wed, 18 Apr 2012 12:20:10 -0400 |
| Subject: NFSv4: Ensure that the LOCK code sets exception->inode |
| |
| From: Trond Myklebust <Trond.Myklebust@netapp.com> |
| |
| commit 05ffe24f5290dc095f98fbaf84afe51ef404ccc5 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/nfs/nfs4proc.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| --- a/fs/nfs/nfs4proc.c |
| +++ b/fs/nfs/nfs4proc.c |
| @@ -4460,7 +4460,9 @@ static int _nfs4_do_setlk(struct nfs4_st |
| static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request) |
| { |
| struct nfs_server *server = NFS_SERVER(state->inode); |
| - struct nfs4_exception exception = { }; |
| + struct nfs4_exception exception = { |
| + .inode = state->inode, |
| + }; |
| int err; |
| |
| do { |
| @@ -4478,7 +4480,9 @@ static int nfs4_lock_reclaim(struct nfs4 |
| static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) |
| { |
| struct nfs_server *server = NFS_SERVER(state->inode); |
| - struct nfs4_exception exception = { }; |
| + struct nfs4_exception exception = { |
| + .inode = state->inode, |
| + }; |
| int err; |
| |
| err = nfs4_set_lock_state(state, request); |
| @@ -4558,6 +4562,7 @@ static int nfs4_proc_setlk(struct nfs4_s |
| { |
| struct nfs4_exception exception = { |
| .state = state, |
| + .inode = state->inode, |
| }; |
| int err; |
| |