If we are disconnected (probably shutting down, if we are receiving a
message) then ignore anything incoming. This avoids passing it to
partially torn down subsystems like the objecter.
Signed-off-by: Sage Weil <sage@newdream.net>
bool librados::RadosClient::ms_dispatch(Message *m)
{
+ bool ret;
+
lock.Lock();
- bool ret = _dispatch(m);
+ if (state == DISCONNECTED) {
+ ldout(cct, 10) << "disconnected, discarding " << *m << dendl;
+ m->put();
+ ret = true;
+ } else {
+ ret = _dispatch(m);
+ }
lock.Unlock();
return ret;
}