From bb6d1f07e4d89d8f2978d2cc8560163bbc115938 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Mon, 13 May 2013 13:29:15 -0700 Subject: [PATCH] rgw: read bucket metadata before writing it In order to keep track of version. Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_bucket.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 934caf3a75186..1495994b71367 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; -- 2.39.5