static void ctx_upcall_timeout_kr(unsigned long data) { struct ptlrpc_cli_ctx *ctx = (struct ptlrpc_cli_ctx *) data; struct key *key = ctx2gctx_keyring(ctx)->gck_key; CWARN("ctx %p, key %p\n", ctx, key); LASSERT(key); cli_ctx_expire(ctx); key_revoke_locked(key); }
static void gss_cli_ctx_die_pf(struct ptlrpc_cli_ctx *ctx, int grace) { LASSERT(ctx->cc_sec); LASSERT(atomic_read(&ctx->cc_refcount) > 0); cli_ctx_expire(ctx); spin_lock(&ctx->cc_sec->ps_lock); if (test_and_clear_bit(PTLRPC_CTX_CACHED_BIT, &ctx->cc_flags)) { LASSERT(!hlist_unhashed(&ctx->cc_cache)); LASSERT(atomic_read(&ctx->cc_refcount) > 1); hlist_del_init(&ctx->cc_cache); if (atomic_dec_and_test(&ctx->cc_refcount)) LBUG(); } spin_unlock(&ctx->cc_sec->ps_lock); }