From: ericm Date: Thu, 26 May 2005 19:14:59 +0000 (+0000) Subject: b=6394 X-Git-Tag: v1_7_100~1267 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=730c27c9900645a8cfe0dcf7cc935ec4fe4efcba;ds=sidebyside b=6394 * don't touch base rpcpipe chain. * invalidate svc gss cache item in case of init error. --- diff --git a/lustre/sec/gss/sec_gss.c b/lustre/sec/gss/sec_gss.c index b811f00..f46d2f5 100644 --- a/lustre/sec/gss/sec_gss.c +++ b/lustre/sec/gss/sec_gss.c @@ -431,6 +431,7 @@ void gss_release_msg(struct gss_upcall_msg *gmsg) return; } LASSERT(list_empty(&gmsg->gum_list)); + LASSERT(list_empty(&gmsg->gum_base.list)); OBD_FREE(gmsg, sizeof(*gmsg)); EXIT; } @@ -443,11 +444,6 @@ gss_unhash_msg_nolock(struct gss_upcall_msg *gmsg) EXIT; return; } - /* FIXME should not do this. when we in upper upcall queue, - * downcall will call unhash_msg, thus later put_msg might - * free msg buffer while it's not dequeued XXX */ - list_del_init(&gmsg->gum_base.list); - /* FIXME */ list_del_init(&gmsg->gum_list); wake_up(&gmsg->gum_waitq); @@ -513,7 +509,7 @@ static void gss_init_upcall_msg(struct gss_upcall_msg *gmsg, #endif /* __KERNEL__ */ /******************************************** - * gss cred manupulation helpers * + * gss cred manipulation helpers * ********************************************/ static int gss_cred_is_uptodate_ctx(struct ptlrpc_cred *cred) @@ -839,9 +835,7 @@ waiting: res = 0; out: - spin_lock(&gsec->gs_lock); gss_release_msg(gss_msg); - spin_unlock(&gsec->gs_lock); RETURN(res); } diff --git a/lustre/sec/gss/svcsec_gss.c b/lustre/sec/gss/svcsec_gss.c index fda3d01..f40544e 100644 --- a/lustre/sec/gss/svcsec_gss.c +++ b/lustre/sec/gss/svcsec_gss.c @@ -944,6 +944,7 @@ gss_svcsec_handle_init(struct ptlrpc_request *req, rc = lustre_pack_reply(req, 0, NULL, NULL); if (rc) { CERROR("failed to pack reply, rc = %d\n", rc); + set_bit(CACHE_NEGATIVE, &rsci->h.flags); GOTO(out, rc = SVC_DROP); }