Commit 9c5948c2 authored by ZhangXiaoxu's avatar ZhangXiaoxu Committed by Anna Schumaker

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: default avatarZhangXiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent f02f3755
...@@ -1814,7 +1814,14 @@ call_encode(struct rpc_task *task) ...@@ -1814,7 +1814,14 @@ call_encode(struct rpc_task *task)
rpc_delay(task, HZ >> 4); rpc_delay(task, HZ >> 4);
break; break;
case -EKEYEXPIRED: 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; break;
default: default:
rpc_call_rpcerror(task, task->tk_status); rpc_call_rpcerror(task, task->tk_status);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment