From: Yehuda Sadeh Date: Mon, 13 May 2013 20:29:15 +0000 (-0700) Subject: rgw: read bucket metadata before writing it X-Git-Tag: v0.67-rc1~128^2~127 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb6d1f07e4d89d8f2978d2cc8560163bbc115938;p=ceph.git rgw: read bucket metadata before writing it In order to keep track of version. Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 934caf3a751..1495994b713 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1301,11 +1301,15 @@ public: } int put(RGWRados *store, string& entry, RGWObjVersionTracker& objv_tracker, JSONObj *obj) { - RGWBucketCompleteInfo bci; - + RGWBucketCompleteInfo bci, old_bci; decode_json_obj(bci, obj); - int ret = store->put_bucket_info(entry, bci.info, false, &objv_tracker, &bci.attrs); + + int ret = store->get_bucket_info(NULL, entry, old_bci.info, &objv_tracker, &old_bci.attrs); + if (ret < 0) + return ret; + + ret = store->put_bucket_info(entry, bci.info, false, &objv_tracker, &bci.attrs); if (ret < 0) return ret;