From 5db3f79cf60fd2414ff1a9a2e431c155ed4cdfbc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 11 Aug 2008 12:12:32 -0700 Subject: [PATCH] mon: guard in/out/down commands a bit more carefully --- src/mon/OSDMonitor.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 1ac624e220a46..aefb4815c9481 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -889,6 +889,8 @@ bool OSDMonitor::prepare_command(MMonCommand *m) long osd = strtol(m->cmd[2].c_str(), 0, 10); if (osdmap.is_down(osd)) { ss << "osd" << osd << " is already down"; + } else if (!osdmap.exists(osd)) { + ss << "osd" << osd << " does not exist"; } else { pending_inc.new_down[osd] = false; ss << "marked down osd" << osd; @@ -901,6 +903,8 @@ bool OSDMonitor::prepare_command(MMonCommand *m) long osd = strtol(m->cmd[2].c_str(), 0, 10); if (osdmap.is_out(osd)) { ss << "osd" << osd << " is already out"; + } else if (!osdmap.exists(osd)) { + ss << "osd" << osd << " does not exist"; } else { pending_inc.new_offload[osd] = CEPH_OSD_OUT; ss << "marked out osd" << osd; @@ -913,6 +917,8 @@ bool OSDMonitor::prepare_command(MMonCommand *m) long osd = strtol(m->cmd[2].c_str(), 0, 10); if (osdmap.is_in(osd)) { ss << "osd" << osd << " is already in"; + } else if (!osdmap.exists(osd)) { + ss << "osd" << osd << " does not exist"; } else { pending_inc.new_offload[osd] = CEPH_OSD_IN; ss << "marked in osd" << osd; -- 2.39.5