]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: remove bucket index objects when deleting the bucket 10120/head
authorOrit Wasserman <owasserm@redhat.com>
Mon, 4 Jul 2016 13:01:51 +0000 (15:01 +0200)
committerOrit Wasserman <owasserm@redhat.com>
Mon, 4 Jul 2016 13:04:48 +0000 (15:04 +0200)
Fixes: http://tracker.ceph.com/issues/16412
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
src/rgw/rgw_rados.cc

index 6329d087296fcaef600f96966f7499b0af7b8f58..5c321511646b3e1bf4196b33332d09c421c16981 100644 (file)
@@ -7229,8 +7229,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<int, string> bucket_objs;
+  int r = open_bucket_index(bucket, index_ctx, bucket_objs);
   if (r < 0)
     return r;
 
@@ -7271,6 +7271,11 @@ int RGWRados::delete_bucket(rgw_bucket& bucket, RGWObjVersionTracker& objv_track
     if (r < 0) {
       return r;
     }
+    /* remove bucket index objects*/
+    map<int, string>::const_iterator biter;
+    for (biter = bucket_objs.begin(); biter != bucket_objs.end(); ++biter) {
+      index_ctx.remove(biter->second);
+    }
   }
   return 0;
 }