From: Sage Weil Date: Tue, 3 May 2011 19:36:16 +0000 (-0700) Subject: Merge remote branch 'origin/stable' X-Git-Tag: v0.28~101 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c0c2029922e3b3e1279738e509dd742818fd7484;p=ceph.git Merge remote branch 'origin/stable' Conflicts: src/mon/OSDMonitor.cc --- c0c2029922e3b3e1279738e509dd742818fd7484 diff --cc src/mon/OSDMonitor.cc index 9acf2c9dea4b,c58a602ea91b..d25569e370fa --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@@ -1428,15 -1417,24 +1428,24 @@@ bool OSDMonitor::prepare_command(MMonCo paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version())); return true; } - else if (m->cmd[1] == "down" && m->cmd.size() == 3) { - long osd = strtol(m->cmd[2].c_str(), 0, 10); - if (!osdmap.exists(osd)) { - ss << "osd" << osd << " does not exist"; - } else if (osdmap.is_down(osd)) { - ss << "osd" << osd << " is already down"; - } else { - pending_inc.new_state[osd] = CEPH_OSD_UP; - ss << "marked down osd" << osd; + else if (m->cmd[1] == "down" && m->cmd.size() >= 3) { + bool any = false; + for (unsigned j = 2; j < m->cmd.size(); j++) { + long osd = strtol(m->cmd[2].c_str(), 0, 10); + if (!osdmap.exists(osd)) { + ss << "osd" << osd << " does not exist"; + } else if (osdmap.is_down(osd)) { + ss << "osd" << osd << " is already down"; + } else { - pending_inc.new_down[osd] = false; ++ pending_inc.new_state[osd] = CEPH_OSD_UP; + if (any) + ss << ", osd" << osd; + else + ss << "marked down osd" << osd; + any = true; + } + } + if (any) { getline(ss, rs); paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version())); return true;