diff options
author | Sage Weil <sage.weil@dreamhost.com> | 2012-02-19 07:41:47 -0800 |
---|---|---|
committer | Sage Weil <sage.weil@dreamhost.com> | 2012-02-19 07:41:47 -0800 |
commit | ff5178c86a043a26ea8523dd5ac24462a8472fd4 (patch) | |
tree | b884499a1eb41ecf2b853101590213579f972f06 /src/mds | |
parent | 344c20220345197c03fbaf46e2c1289d81a0a14f (diff) | |
download | ceph-ff5178c86a043a26ea8523dd5ac24462a8472fd4.tar.gz |
mds: use want_state to indicate shutdown
State gets DNE when we receive the first map. And want_ makes more sense
anyway. Fixes MDS startup.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Diffstat (limited to 'src/mds')
-rw-r--r-- | src/mds/MDS.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 2f1dd447d55..79d1e6e3bfd 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -455,6 +455,10 @@ int MDS::init(int wanted_state) monc->wait_auth_rotating(30.0); mds_lock.Lock(); + if (want_state == CEPH_MDS_STATE_DNE) { + mds_lock.Unlock(); + return 0; + } timer.init(); @@ -1522,7 +1526,7 @@ void MDS::handle_signal(int signum) void MDS::suicide() { assert(mds_lock.is_locked()); - state = CEPH_MDS_STATE_DNE; // whatever. + want_state = CEPH_MDS_STATE_DNE; // whatever. dout(1) << "suicide. wanted " << ceph_mds_state_name(want_state) << ", now " << ceph_mds_state_name(state) << dendl; @@ -1591,7 +1595,7 @@ bool MDS::ms_dispatch(Message *m) { bool ret; mds_lock.Lock(); - if (state == CEPH_MDS_STATE_DNE) { + if (want_state == CEPH_MDS_STATE_DNE) { dout(10) << " stopping, discarding " << *m << dendl; m->put(); ret = true; @@ -1960,7 +1964,7 @@ void MDS::ms_handle_connect(Connection *con) { Mutex::Locker l(mds_lock); dout(0) << "ms_handle_connect on " << con->get_peer_addr() << dendl; - if (state == CEPH_MDS_STATE_DNE) + if (want_state == CEPH_MDS_STATE_DNE) return; objecter->ms_handle_connect(con); } @@ -1969,7 +1973,7 @@ bool MDS::ms_handle_reset(Connection *con) { Mutex::Locker l(mds_lock); dout(0) << "ms_handle_reset on " << con->get_peer_addr() << dendl; - if (state == CEPH_MDS_STATE_DNE) + if (want_state == CEPH_MDS_STATE_DNE) return false; if (con->get_peer_type() == CEPH_ENTITY_TYPE_OSD) { @@ -1994,7 +1998,7 @@ void MDS::ms_handle_remote_reset(Connection *con) { Mutex::Locker l(mds_lock); dout(0) << "ms_handle_remote_reset on " << con->get_peer_addr() << dendl; - if (state == CEPH_MDS_STATE_DNE) + if (want_state == CEPH_MDS_STATE_DNE) return; objecter->ms_handle_remote_reset(con); } @@ -2004,7 +2008,7 @@ bool MDS::ms_verify_authorizer(Connection *con, int peer_type, bool& is_valid) { Mutex::Locker l(mds_lock); - if (state == CEPH_MDS_STATE_DNE) + if (want_state == CEPH_MDS_STATE_DNE) return false; AuthAuthorizeHandler *authorize_handler = |