提交 b30bef17 编写于 作者: Z ZhangXiaoxu 提交者: Xie XiuQi

SUNRPC: task should be exit if encode return EKEYEXPIRED more times

euler inclusion
category: bugfix
bugzilla: 14217
CVE: NA

-------------------------------------------------

If the rpc.gssd always return cred success, but now the cred is
expired(dected when encode the task), then the task will loop in
call_refresh and call_transmit.

Exit the rpc task after retry.

Link: https://patchwork.kernel.org/patch/10921577/Signed-off-by: NZhangXiaoxu <zhangxiaoxu5@huawei.com>
Reviewed-by: NHou Tao <houtao1@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 6308aefd
...@@ -1962,8 +1962,11 @@ call_transmit(struct rpc_task *task) ...@@ -1962,8 +1962,11 @@ call_transmit(struct rpc_task *task)
/* Was the error nonfatal? */ /* Was the error nonfatal? */
if (task->tk_status == -EAGAIN) if (task->tk_status == -EAGAIN)
rpc_delay(task, HZ >> 4); rpc_delay(task, HZ >> 4);
else if (task->tk_status == -EKEYEXPIRED) else if (task->tk_status == -EKEYEXPIRED &&
task->tk_cred_retry) {
task->tk_cred_retry--;
task->tk_action = call_refresh; task->tk_action = call_refresh;
}
else else
rpc_exit(task, task->tk_status); rpc_exit(task, task->tk_status);
return; return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册