From ee9ad09e3f62aa2af5b91e42d9627927af116307 Mon Sep 17 00:00:00 2001 From: shadow Date: Tue, 7 Apr 2009 16:34:18 +0000 Subject: [PATCH] correct count of recoverable clients Branch b_release_1_6_7 b=18480 i=tappro i=johann --- lustre/ChangeLog | 6 ++++++ lustre/obdclass/genops.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index f52ae22..911c961 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -36,6 +36,12 @@ Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630. +Severity : minor +Bugzilla : 18480 +Description: correct count of recoverable clients +Details : if recovery failed for client for some reasons (goal inode or + something else) server can wait failed clients for finish recovery. + Severity : critical Bugzilla : 18695 Descriptoin: Lustre detected file system corruption with inode out of bounds diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c index 959048f..bc12c28 100644 --- a/lustre/obdclass/genops.c +++ b/lustre/obdclass/genops.c @@ -755,7 +755,11 @@ void class_unlink_export(struct obd_export *exp) list_del_init(&exp->exp_obd_chain_timed); exp->exp_obd->obd_num_exports--; spin_unlock(&exp->exp_obd->obd_dev_lock); - + /* Keep these counter valid always */ + spin_lock_bh(&exp->exp_obd->obd_processing_task_lock); + if (exp->exp_replay_needed) + exp->exp_obd->obd_recoverable_clients--; + spin_unlock_bh(&exp->exp_obd->obd_processing_task_lock); class_export_put(exp); } EXPORT_SYMBOL(class_unlink_export); -- 1.8.3.1