X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fptlrpc%2Fgss%2Fsec_gss.c;h=35dd68c22887c7918599a6c0a5c99d485f7d1463;hp=9b531f2aee84d12e90af3646bacad26a1a8b3e82;hb=676f57c42c9332bc956025663eb767cf834e5cba;hpb=4aa9f72a4e93304ddbb19a47335e22e72e3545cc diff --git a/lustre/ptlrpc/gss/sec_gss.c b/lustre/ptlrpc/gss/sec_gss.c index 9b531f2..35dd68c 100644 --- a/lustre/ptlrpc/gss/sec_gss.c +++ b/lustre/ptlrpc/gss/sec_gss.c @@ -1211,6 +1211,15 @@ int gss_cli_ctx_fini_common(struct ptlrpc_sec *sec, LASSERT(atomic_read(&ctx->cc_refcount) == 0); LASSERT(ctx->cc_sec == sec); + /* + * remove UPTODATE flag of reverse ctx thus we won't send fini rpc, + * this is to avoid potential problems of client side reverse svc ctx + * be mis-destroyed in various recovery senarios. anyway client can + * manage its reverse ctx well by associating it with its buddy ctx. + */ + if (sec_is_reverse(sec)) + ctx->cc_flags &= ~PTLRPC_CTX_UPTODATE; + if (gctx->gc_mechctx) { /* the final context fini rpc will use this ctx too, and it's * asynchronous which finished by request_out_callback(). so