]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote branch 'origin/stable'
authorSage Weil <sage@newdream.net>
Tue, 3 May 2011 19:36:16 +0000 (12:36 -0700)
committerSage Weil <sage@newdream.net>
Tue, 3 May 2011 19:36:16 +0000 (12:36 -0700)
Conflicts:
src/mon/OSDMonitor.cc

1  2 
src/client/fuse_ll.cc
src/common/config.cc
src/mon/OSDMonitor.cc

Simple merge
Simple merge
index 9acf2c9dea4bb4a1039371c157efc5b7f1512010,c58a602ea91b573564e0e99805b5801554b684e3..d25569e370fa5580bac283bb349127333e0d7e8a
@@@ -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;