mds: drop MDSIOContext on mds->stopping

`stopping` is true once the MDS has entered suicide().  During
this phase, any MDSIOContexts that are called (e.g. from objecter,
journaler) become no-ops.

Signed-off-by: John Spray <john.spray@redhat.com>
This commit is contained in:
John Spray 2015-06-18 11:08:05 +01:00
parent ae387b6577
commit f2daa19c8d

View File

@ -52,6 +52,12 @@ void MDSIOContextBase::complete(int r) {
dout(10) << "MDSIOContextBase::complete: " << typeid(*this).name() << dendl;
assert(mds != NULL);
Mutex::Locker l(mds->mds_lock);
if (mds->stopping) {
dout(4) << "MDSIOContextBase::complete: dropping for stopping "
<< typeid(*this).name() << dendl;
return;
}
if (r == -EBLACKLISTED) {
derr << "MDSIOContextBase: blacklisted! Restarting..." << dendl;
mds->respawn();