From: Orit Wasserman Date: Mon, 4 Jul 2016 13:01:51 +0000 (+0200) Subject: rgw: remove bucket index objects when deleting the bucket X-Git-Tag: v0.94.8~9^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=81aef600671f0fe523206cea16000e79bc6bb75c;p=ceph.git rgw: remove bucket index objects when deleting the bucket Fixes: http://tracker.ceph.com/issues/16412 Signed-off-by: Orit Wasserman (cherry picked from commit 3ae276390641ad5fc4fef0c03971db95948880b4) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 396d2d83f352..2245a737b166 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -4393,8 +4393,8 @@ bool RGWRados::is_syncing_bucket_meta(rgw_bucket& bucket) int RGWRados::delete_bucket(rgw_bucket& bucket, RGWObjVersionTracker& objv_tracker) { librados::IoCtx index_ctx; - string oid; - int r = open_bucket_index(bucket, index_ctx, oid); + map bucket_objs; + int r = open_bucket_index(bucket, index_ctx, bucket_objs); if (r < 0) return r; @@ -4435,6 +4435,11 @@ int RGWRados::delete_bucket(rgw_bucket& bucket, RGWObjVersionTracker& objv_track if (r < 0) { return r; } + /* remove bucket index objects*/ + map::const_iterator biter; + for (biter = bucket_objs.begin(); biter != bucket_objs.end(); ++biter) { + index_ctx.remove(biter->second); + } } return 0; }