Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -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:
			if (!task->tk_cred_retry) {
				rpc_exit(task, task->tk_status);
			} else {
				task->tk_action = call_refresh;
				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);