From: shadow Date: Mon, 21 Jan 2008 13:55:11 +0000 (+0000) Subject: fix deadlock with llog cleanup. X-Git-Tag: v1_7_0_51~295 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=8b182ea98f33394fb9bd1e45e0762a730800f188;p=fs%2Flustre-release.git fix deadlock with llog cleanup. b=14608 i=johann i=wangdi --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 15023cf..88cd228 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -13,6 +13,16 @@ tbd Sun Microsystems, Inc. removed cwd "./" (refer to Bugzilla 14399). Severity : normal +Frequency : rare on shutdown ost +Bugzilla : 14608 +Description: If llog cancel was not send before clean_exports phase, this can + produce deadlock in llog code. +Details : If llog thread has last reference to obd and call class_import_put + this produce deadlock because llog_cleanup_commit_master wait when + last llog_commit_thread exited, but this never success because was + called from llog_commit_thread. + +Severity : normal Bugzilla : 9977 Description: allow userland application know is lost one of stripes. Details : fill lvb_blocks with error code on ost and return it to diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index 84947d6..a99a422 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -2297,9 +2297,9 @@ static int filter_precleanup(struct obd_device *obd, break; case OBD_CLEANUP_EXPORTS: target_cleanup_recovery(obd); + rc = filter_llog_preclean(obd); break; case OBD_CLEANUP_SELF_EXP: - rc = filter_llog_preclean(obd); break; case OBD_CLEANUP_OBD: break;