From 8cc4bc162c8c1c240e62840d968b967f5f47b682 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Wed, 17 Dec 2014 17:12:43 -0800 Subject: [PATCH] rgw: use correct objv_tracker for bucket instance When trying to create a bucket that already existed, use the objv_tracker of the newly created instance, and not of the original bucket. Signed-off-by: Yehuda Sadeh (cherry picked from commit fe158ecc25feefcea8aea4133118e4a84900a8ec) --- src/rgw/rgw_rados.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 858c67ef33fec..66a8f68fe7923 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -2417,6 +2417,7 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, ret = put_linked_bucket_info(info, exclusive, 0, pep_objv, &attrs, true); if (ret == -EEXIST) { /* we need to reread the info and return it, caller will have a use for it */ + RGWObjVersionTracker instance_ver = info.objv_tracker; info.objv_tracker.clear(); r = get_bucket_info(NULL, bucket.name, info, NULL, NULL); if (r < 0) { @@ -2432,7 +2433,7 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, /* remove bucket meta instance */ string entry; get_bucket_instance_entry(bucket, entry); - r = rgw_bucket_instance_remove_entry(this, entry, &info.objv_tracker); + r = rgw_bucket_instance_remove_entry(this, entry, &instance_ver); if (r < 0) return r; -- 2.39.5