From: Yan, Zheng Date: Tue, 28 Jan 2014 04:17:24 +0000 (+0800) Subject: mds: remove failed MDS from export bystanders list X-Git-Tag: v0.78~165^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9e8dbf9e3f97a801ac8f3b9a4a3929df29f7a77c;p=ceph.git mds: remove failed MDS from export bystanders list make sure the importer does not wait for MExportDirNotifyAck from the failed MDS Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index 036d9be1da3..233a5116410 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -511,15 +511,16 @@ void Migrator::handle_mds_failure_or_stop(int who) break; } } else { - if (q->second.state == IMPORT_ABORTING && - q->second.bystanders.count(who)) { - assert(dir); - dout(10) << "faking export_notify_ack from mds." << who - << " on aborting import " << *dir << " from mds." << q->second.peer - << dendl; + if (q->second.bystanders.count(who)) { q->second.bystanders.erase(who); - if (q->second.bystanders.empty()) { - import_reverse_unfreeze(dir); + if (q->second.state == IMPORT_ABORTING) { + assert(dir); + dout(10) << "faking export_notify_ack from mds." << who + << " on aborting import " << *dir << " from mds." << q->second.peer + << dendl; + if (q->second.bystanders.empty()) { + import_reverse_unfreeze(dir); + } } } }