From: Trond Myklebust trond.myklebust@hammerspace.com
mainline inclusion from mainline-v5.0-rc1 commit c71c46f0157348a6c1c66f7d382c770ffc212724 category: bugfix bugzilla: NA CVE: NA
--------------------------------
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 Signed-off-by: Zhang Xiaoxu zhangxiaoxu5@huawei.com Reviewed-by: Zhang Yi yi.zhang@huawei.com Signed-off-by: Yang Yingliang yangyingliang@huawei.com --- fs/nfs/nfs4proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 283e4ed1aca19..c138dd107d4a3 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -770,7 +770,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;