summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2019-03-01 19:40:05 +0300
committerTrond Myklebust <trond.myklebust@hammerspace.com>2019-03-01 20:16:28 +0300
commitc71c46f0157348a6c1c66f7d382c770ffc212724 (patch)
tree79f60fe16b0d16a611e2b442f164b4ab330f36e2 /fs
parentc1dffe0bf7f9c3d57d9f237a7cb2a81e62babd2b (diff)
downloadlinux-c71c46f0157348a6c1c66f7d382c770ffc212724.tar.xz
NFSv4.1: Don't process the sequence op more than once.
Ensure that if we call nfs41_sequence_process() a second time for the same rpc_task, then we only process the results once. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs')
-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 5f8517d1a0a5..5b980246b035 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -754,7 +754,7 @@ static int nfs41_sequence_process(struct rpc_task *task,
if (slot == NULL)
goto out_noaction;
/* don't increment the sequence number if the task wasn't sent */
- if (!RPC_WAS_SENT(task))
+ if (!RPC_WAS_SENT(task) || slot->seq_done)
goto out;
session = slot->table->session;