summaryrefslogtreecommitdiff
path: root/src/mds
diff options
context:
space:
mode:
authorSage Weil <sage.weil@dreamhost.com>2012-02-19 07:41:47 -0800
committerSage Weil <sage.weil@dreamhost.com>2012-02-19 07:41:47 -0800
commitff5178c86a043a26ea8523dd5ac24462a8472fd4 (patch)
treeb884499a1eb41ecf2b853101590213579f972f06 /src/mds
parent344c20220345197c03fbaf46e2c1289d81a0a14f (diff)
downloadceph-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.cc16
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 =