]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: use get_data_extra_pool() when get data extra pool from RGWZonePlacementInfo 15219/head
authorfang.yuxiang <fang.yuxiang@eisoo.com>
Tue, 23 May 2017 03:50:38 +0000 (11:50 +0800)
committerfang.yuxiang <fang.yuxiang@eisoo.com>
Wed, 24 May 2017 01:04:19 +0000 (09:04 +0800)
use member data_extra_pool of RGWZonePlacementInfo isn't properly, because it maybe not configured.

Fixes: http://tracker.ceph.com/issues/20064
Signed-off-by: fang yuxiang <fang.yuxiang@eisoo.com>
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h

index 8480313e931738c989ca057a9c2ff679db7f0928..41aafabf2580fc286d3161db8679f087047dd7bf 100644 (file)
@@ -130,7 +130,7 @@ static bool rgw_get_obj_data_pool(const RGWZoneGroup& zonegroup, const RGWZonePa
     if (!obj.in_extra_data) {
       *pool = placement.data_pool;
     } else {
-      *pool = placement.data_extra_pool;
+      *pool = placement.get_data_extra_pool();
     }
   }
 
index e60ccbdf0be1f8289fa2cd699f537a4d3b9a011e..6a33ee8c2d33750c3ce53b29c3e2b2255b9131f0 100644 (file)
@@ -1121,7 +1121,7 @@ struct RGWZonePlacementInfo {
     }
     DECODE_FINISH(bl);
   }
-  const rgw_pool& get_data_extra_pool() {
+  const rgw_pool& get_data_extra_pool() const {
     if (data_extra_pool.empty()) {
       return data_pool;
     }
@@ -1293,7 +1293,7 @@ struct RGWZoneParams : RGWSystemMetaObj {
     if (!obj.in_extra_data) {
       *pool = iter->second.data_pool;
     } else {
-      *pool = iter->second.data_extra_pool;
+      *pool = iter->second.get_data_extra_pool();
     }
     return true;
   }