From 2b4418476f8a007adc67c0949bc82eaa78a4a090 Mon Sep 17 00:00:00 2001 From: wangdi Date: Mon, 24 Dec 2007 20:15:32 +0000 Subject: [PATCH] Branch: b1_6 obd_set_up should also be checked in llog_cleanup. b=14477 i=deen,adilger --- lustre/ChangeLog | 8 ++++++++ lustre/obdclass/llog_obd.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 81abad7..3aa12e0 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -181,6 +181,14 @@ Details : mds_open improperly used accmode to find out access mode to a skiplists - locks are now added to the front of the granted queue. +Severity : normal +Bugzilla : 14477 +Description: Hit ASSERTION(obd->obd_stopping == 1) failed in some setup failed + situation. +Details : In obd setup failure handler, obd_stopping will not necessarily to + be 1, and obd_set_up should also be checked to make sure whether + obd is completely setup. + -------------------------------------------------------------------------------- 2007-12-07 Cluster File Systems, Inc. diff --git a/lustre/obdclass/llog_obd.c b/lustre/obdclass/llog_obd.c index 00e208b..c9e9a95 100644 --- a/lustre/obdclass/llog_obd.c +++ b/lustre/obdclass/llog_obd.c @@ -74,7 +74,7 @@ int __llog_ctxt_put(struct llog_ctxt *ctxt) obd->obd_llog_ctxt[ctxt->loc_idx] = NULL; spin_unlock(&obd->obd_dev_lock); - LASSERT(obd->obd_stopping == 1); + LASSERT(obd->obd_stopping == 1 || obd->obd_set_up == 0); /* cleanup the llog ctxt here */ if (CTXTP(ctxt, cleanup)) rc = CTXTP(ctxt, cleanup)(ctxt); @@ -102,7 +102,7 @@ int llog_cleanup(struct llog_ctxt *ctxt) /* sync with other llog ctxt user thread */ spin_lock(&obd->obd_dev_lock); - LASSERT(obd->obd_stopping == 1); + LASSERT(obd->obd_stopping == 1 || obd->obd_set_up == 0); spin_unlock(&obd->obd_dev_lock); idx = ctxt->loc_idx; -- 1.8.3.1