From 4b768a8fe9146e6ec033d4f6780e0ef373fcfd7a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 24 Jul 2014 10:06:31 -0700 Subject: [PATCH] mon/OSDMonitor: improve no-op cache_mode set check If we have a pending pool value but the cache_mode hasn't changed, this is still a no-op (and we don't need to block). Backport: firefly Signed-off-by: Sage Weil (cherry picked from commit 67d13d76f5692fa20649ea877f254c34094c11f6) --- src/mon/OSDMonitor.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index a1651c4ab4797..69b845d38039e 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -5186,7 +5186,9 @@ done: } // 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) { + if (p->cache_mode == mode && + (pending_inc.new_pools.count(pool_id) == 0 || + pending_inc.new_pools[pool_id].cache_mode == p->cache_mode)) { ss << "set cache-mode for pool '" << poolstr << "'" << " to " << pg_pool_t::get_cache_mode_name(mode); err = 0; -- 2.39.5