SUNRPC: task should be exit if encode return EKEYEXPIRED more times
If the rpc.gssd always return cred success, but now the cred is expired, then the task will loop in call_refresh and call_transmit. Exit the rpc task after retry. Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
Родитель
f02f3755db
Коммит
9c5948c248
|
@ -1814,7 +1814,14 @@ call_encode(struct rpc_task *task)
|
|||
rpc_delay(task, HZ >> 4);
|
||||
break;
|
||||
case -EKEYEXPIRED:
|
||||
task->tk_action = call_refresh;
|
||||
if (!task->tk_cred_retry) {
|
||||
rpc_exit(task, task->tk_status);
|
||||
} else {
|
||||
task->tk_action = call_refresh;
|
||||
task->tk_cred_retry--;
|
||||
dprintk("RPC: %5u %s: retry refresh creds\n",
|
||||
task->tk_pid, __func__);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
rpc_call_rpcerror(task, task->tk_status);
|
||||
|
|
Загрузка…
Ссылка в новой задаче