- * returned in this case.
- *
- * but in any cases, don't resend ctx destroying rpc, don't resend
- * reverse rpc. */
- if (req->rq_ctx_fini) {
- CWARN("server respond error (%08x/%08x) for ctx fini\n",
- errhdr->gh_major, errhdr->gh_minor);
- rc = -EINVAL;
- } else if (sec_is_reverse(ctx->cc_sec)) {
- CWARN("reverse server respond error (%08x/%08x)\n",
- errhdr->gh_major, errhdr->gh_minor);
- rc = -EINVAL;
- } else if (errhdr->gh_major == GSS_S_NO_CONTEXT ||
- errhdr->gh_major == GSS_S_BAD_SIG) {
- CWARN("req x"LPU64"/t"LPU64": server respond ctx %p(%u->%s) "
- "%s, server might lost the context.\n",
- req->rq_xid, req->rq_transno, ctx, ctx->cc_vcred.vc_uid,
- sec2target_str(ctx->cc_sec),
- errhdr->gh_major == GSS_S_NO_CONTEXT ?
- "NO_CONTEXT" : "BAD_SIG");
-
- sptlrpc_cli_ctx_expire(ctx);
-
- /* we need replace the ctx right here, otherwise during
- * resent we'll hit the logic in sptlrpc_req_refresh_ctx()
- * which keep the ctx with RESEND flag, thus we'll never
- * get rid of this ctx. */
- rc = sptlrpc_req_replace_dead_ctx(req);
- if (rc == 0)
- req->rq_resend = 1;
- } else {
- CERROR("req %p: server report gss error (%x/%x)\n",
- req, errhdr->gh_major, errhdr->gh_minor);
- rc = -EACCES;
- }
+ * returned in this case. */
+ CWARN("%s: server might lost the context, retrying\n",
+ errhdr->gh_major == GSS_S_NO_CONTEXT ? "NO_CONTEXT" : "BAD_SIG");
+
+ sptlrpc_cli_ctx_expire(ctx);
+
+ /* we need replace the ctx right here, otherwise during
+ * resent we'll hit the logic in sptlrpc_req_refresh_ctx()
+ * which keep the ctx with RESEND flag, thus we'll never
+ * get rid of this ctx. */
+ rc = sptlrpc_req_replace_dead_ctx(req);
+ if (rc == 0)
+ req->rq_resend = 1;