]> 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)
committerSage Weil <sage@redhat.com>
Fri, 1 Aug 2014 23:40:38 +0000 (16:40 -0700)
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
(cherry picked from commit d01aa5bff30441eec1ffaa3e59a21187f8478475)

src/mon/OSDMonitor.cc

index 40cf6ccc6047c13a9e0bb449cf63c8254cdec69f..7c4f198a51c19ddfe1b17ebd515a0b6db6d12a0d 100644 (file)
@@ -5184,6 +5184,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