]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: OSDMap: check for erasure pools when getting features
authorJoao Eduardo Luis <jecluis@gmail.com>
Sat, 14 Dec 2013 00:41:01 +0000 (00:41 +0000)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Thu, 19 Dec 2013 02:14:57 +0000 (02:14 +0000)
If we have a pool with type Erasure, then we consider we require
CEPH_FEATURE_OSD_ERASURE_CODES.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/osd/OSDMap.cc

index 7e148cb485d1dc857be1b1b4ee58201f3e45fc04..cbea920314c10ace91d3ac1f5820080ccb3c92ec 100644 (file)
@@ -759,12 +759,16 @@ uint64_t OSDMap::get_features(uint64_t *pmask) const
     if (p->second.flags & pg_pool_t::FLAG_HASHPSPOOL) {
       features |= CEPH_FEATURE_OSDHASHPSPOOL;
     }
+    if (p->second.is_erasure()) {
+      features |= CEPH_FEATURE_OSD_ERASURE_CODES;
+    }
     if (!p->second.tiers.empty() ||
        p->second.is_tier()) {
       features |= CEPH_FEATURE_OSD_CACHEPOOL;
     }
   }
-  mask |= CEPH_FEATURE_OSDHASHPSPOOL | CEPH_FEATURE_OSD_CACHEPOOL;
+  mask |= CEPH_FEATURE_OSDHASHPSPOOL | CEPH_FEATURE_OSD_CACHEPOOL |
+          CEPH_FEATURE_OSD_ERASURE_CODES;
 
   if (pmask)
     *pmask = mask;