From: Orit Wasserman Date: Fri, 20 May 2016 07:52:01 +0000 (+0200) Subject: rgw: add missing metadata_heap pool to old zones X-Git-Tag: v10.2.3~129^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e9f99166f7fc1b4b468e146a47ec9ac71541bec9;p=ceph.git rgw: add missing metadata_heap pool to old zones Fixes: http://tracker.ceph.com/issues/15937 Signed-off-by: Orit Wasserman Signed-off-by: Abhishek Lekshmanan (cherry picked from commit b79856bd3f7db8498231d7f35b53b4bcb44a0422) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 8a3420c05c0b8..a07b4a728b59f 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3332,6 +3332,17 @@ int RGWRados::replace_region_with_zonegroup() ldout(cct, 0) << "failed to list regions: ret "<< ret << " " << cpp_strerror(-ret) << dendl; return ret; } else if (ret == -ENOENT || regions.empty()) { + RGWZoneParams zoneparams(default_zone_name); + int ret = zoneparams.init(cct, this); + if (ret < 0 && ret != -ENOENT) { + ldout(cct, 0) << __func__ << ": error initializing default zone params: " << cpp_strerror(-ret) << dendl; + return ret; + } + /* default zone is missing meta_heap */ + if (ret != -ENOENT && zoneparams.metadata_heap.name.empty()) { + zoneparams.metadata_heap = ".rgw.meta"; + return zoneparams.update(); + } return 0; } @@ -3432,6 +3443,9 @@ int RGWRados::replace_region_with_zonegroup() ldout(cct, 0) << "failed to init zoneparams " << iter->first << ": " << cpp_strerror(-ret) << dendl; return ret; } + if (zoneparams.metadata_heap.name.empty()) { + zoneparams.metadata_heap = ".rgw.meta"; + } zonegroup.realm_id = realm.get_id(); ret = zoneparams.update(); if (ret < 0 && ret != -EEXIST) {