]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: read bucket metadata before writing it
authorYehuda Sadeh <yehuda@inktank.com>
Mon, 13 May 2013 20:29:15 +0000 (13:29 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Mon, 13 May 2013 20:29:15 +0000 (13:29 -0700)
In order to keep track of version.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_bucket.cc

index 934caf3a7518636bad377a1a7b19016f01b997c5..1495994b713678d7f792d7ce83ca7a5001c541b6 100644 (file)
@@ -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;