]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: forward -> proxy, readforward -> readproxy on octopus
authorSage Weil <sage@redhat.com>
Tue, 9 Jul 2019 16:13:57 +0000 (11:13 -0500)
committerSage Weil <sage@redhat.com>
Wed, 10 Jul 2019 22:39:19 +0000 (17:39 -0500)
Adjust cache modes on upgrade.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index 45a62095fc46aae9861213b6832cebd0de3bbac4..86d9eb486e2c9c6b3e465cca5c983160aeaa7c0d 100644 (file)
@@ -1486,6 +1486,27 @@ void OSDMonitor::encode_pending(MonitorDBStore::TransactionRef t)
        tmp.require_osd_release >= ceph_release_t::octopus) {
       dout(10) << __func__ << " first octopus+ epoch" << dendl;
 
+      // adjust obsoleted cache modes
+      for (auto& [poolid, pi] : tmp.pools) {
+       if (pi.cache_mode == pg_pool_t::CACHEMODE_FORWARD) {
+         if (pending_inc.new_pools.count(poolid) == 0) {
+           pending_inc.new_pools[poolid] = pi;
+         }
+         dout(10) << __func__ << " switching pool " << poolid
+                  << " cachemode from forward -> proxy" << dendl;
+         pending_inc.new_pools[poolid].cache_mode = pg_pool_t::CACHEMODE_PROXY;
+       }
+       if (pi.cache_mode == pg_pool_t::CACHEMODE_READFORWARD) {
+         if (pending_inc.new_pools.count(poolid) == 0) {
+           pending_inc.new_pools[poolid] = pi;
+         }
+         dout(10) << __func__ << " switching pool " << poolid
+                  << " cachemode from readforward -> readproxy" << dendl;
+         pending_inc.new_pools[poolid].cache_mode =
+           pg_pool_t::CACHEMODE_READPROXY;
+       }
+      }
+
       // clear removed_snaps for every pool
       for (auto& [poolid, pi] : tmp.pools) {
        if (pi.removed_snaps.empty()) {