]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
NFSv4: nfs4_locku_done must release the sequence id
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 29 Oct 2012 22:53:23 +0000 (18:53 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Nov 2012 21:18:45 +0000 (13:18 -0800)
commit 2b1bc308f492589f7d49012ed24561534ea2be8c upstream.

If the state recovery machinery is triggered by the call to
nfs4_async_handle_error() then we can deadlock.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4proc.c

index d5a0cf15d3cbde50d0d4bbb5d5104890e26ba850..430798837a876cd41bc33791936345546f662990 100644 (file)
@@ -4390,6 +4390,7 @@ static void nfs4_locku_done(struct rpc_task *task, void *data)
                        if (nfs4_async_handle_error(task, calldata->server, NULL) == -EAGAIN)
                                rpc_restart_call_prepare(task);
        }
+       nfs_release_seqid(calldata->arg.seqid);
 }
 
 static void nfs4_locku_prepare(struct rpc_task *task, void *data)