From: Yehuda Sadeh Date: Thu, 18 Dec 2014 01:12:43 +0000 (-0800) Subject: rgw: use correct objv_tracker for bucket instance X-Git-Tag: v0.80.10~17^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8cc4bc162c8c1c240e62840d968b967f5f47b682;p=ceph.git 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) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 858c67ef33f..66a8f68fe79 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;