UBUNTU: SAUCE: NFSv4: Ensure that the LOCK code sets exception->inode
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 19 Apr 2012 09:45:02 +0000 (10:45 +0100)
committerLeann Ogasawara <leann.ogasawara@canonical.com>
Thu, 19 Apr 2012 13:46:01 +0000 (06:46 -0700)
BugLink: http://bugs.launchpad.net/bugs/974664

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 [>= 3.3.1]
(cherry picked from commit 487790f27df9bb27d3400486bd021dd59edc7589 git://git.linux-nfs.org/projects/trondmy/linux-nfs.git)

Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>

fs/nfs/nfs4proc.c

index 979ccc3..39c9cd2 100644 (file)
@@ -4453,7 +4453,9 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f
 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 {
@@ -4471,7 +4473,9 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request
 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);
@@ -4551,6 +4555,7 @@ static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *
 {
        struct nfs4_exception exception = {
                .state = state,
+               .inode = state->inode,
        };
        int err;