From: Abhishek Varshney Date: Fri, 16 Jun 2017 12:41:47 +0000 (+0530) Subject: rgw: abort incomplete multiparts on bucket delete X-Git-Tag: v12.1.1~59^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=acd4f92cf1b0abb0ed3cde72eac9ada1cb7cc946;p=ceph.git rgw: abort incomplete multiparts on bucket delete Fixes: http://tracker.ceph.com/issues/17164 Signed-off-by: Abhishek Varshney --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 64ec8a02b5c5..7a3fd29ef194 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2696,6 +2696,27 @@ void RGWDeleteBucket::execute() } } + string prefix, delimiter; + + if (s->prot_flags & RGW_REST_SWIFT) { + string path_args; + path_args = s->info.args.get("path"); + if (!path_args.empty()) { + if (!delimiter.empty() || !prefix.empty()) { + op_ret = -EINVAL; + return; + } + prefix = path_args; + delimiter="/"; + } + } + + op_ret = abort_bucket_multiparts(store, s->cct, s->bucket_info, prefix, delimiter); + + if (op_ret < 0) { + return; + } + op_ret = store->delete_bucket(s->bucket_info, ot, false); if (op_ret == -ECANCELED) {