summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2014-01-29 12:12:15 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2014-01-29 12:12:15 -0500
commitcab92c19821a814ecf5a5279e2699bf28e66caee (patch)
treee133e6d392e98ebdcab740dbd92701c1f4a2e7bb
parentf9c96fcc501a43dbc292b17fc0ded4b54e63b79d (diff)
downloadlinux-cab92c19821a814ecf5a5279e2699bf28e66caee.tar.gz
linux-cab92c19821a814ecf5a5279e2699bf28e66caee.tar.bz2
linux-cab92c19821a814ecf5a5279e2699bf28e66caee.zip
NFSv4: Fix a slot leak in nfs40_sequence_done
The check for whether or not we sent an RPC call in nfs40_sequence_done is insufficient to decide whether or not we are holding a session slot, and thus should not be used to decide when to free that slot. This patch replaces the RPC_WAS_SENT() test with the correct test for whether or not slot == NULL. Cc: Chuck Lever <chuck.lever@oracle.com> Cc: stable@vger.kernel.org # 3.12+ Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-rw-r--r--fs/nfs/nfs4proc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index ae00c3ed733f..493e9cce1f11 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -539,7 +539,7 @@ static int nfs40_sequence_done(struct rpc_task *task,
struct nfs4_slot *slot = res->sr_slot;
struct nfs4_slot_table *tbl;
- if (!RPC_WAS_SENT(task))
+ if (slot == NULL)
goto out;
tbl = slot->table;