]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: OSDMonitor: return immediately if 'osd tier cache-mode' is a no-op
authorJoao Eduardo Luis <joao.luis@inktank.com>
Tue, 29 Apr 2014 17:03:56 +0000 (18:03 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Tue, 29 Apr 2014 17:03:56 +0000 (18:03 +0100)
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/mon/OSDMonitor.cc

index 78799d00ca6cd188d1868ffeec4863ee3f573509..5877e4ab9f7c176136383aa151e28a2350d51677 100644 (file)
@@ -5131,6 +5131,15 @@ done:
       err = -EINVAL;
       goto reply;
     }
+
+    // pool already has this cache-mode set and there are no pending changes
+    if (p->cache_mode == mode && pending_inc.new_pools.count(pool_id) == 0) {
+      ss << "set cache-mode for pool '" << poolstr << "'"
+         << " to " << pg_pool_t::get_cache_mode_name(mode);
+      err = 0;
+      goto reply;
+    }
+
     // go
     pending_inc.get_new_pool(pool_id, p)->cache_mode = mode;
     ss << "set cache-mode for pool '" << poolstr