]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix modification to index attrs when setting acls
authorbrian <bjfelton@gmail.com>
Wed, 23 Sep 2015 14:49:36 +0000 (09:49 -0500)
committerYehuda Sadeh <yehuda@redhat.com>
Mon, 9 Nov 2015 19:03:02 +0000 (11:03 -0800)
Fixes: #12955
 - add ACL change after initial population
 - populate bufferlist with object attributes

Signed-off-by: Brian Felton <bjfelton@gmail.com>
src/rgw/rgw_op.cc

index ca41a25ad983b6c0903382db9963867f81cce013..8633036ef9e46def4d0272156cf68dc241762777 100644 (file)
@@ -2799,8 +2799,17 @@ void RGWPutACLs::execute()
   new_policy.encode(bl);
   obj = rgw_obj(s->bucket, s->object);
   map<string, bufferlist> attrs;
-  attrs[RGW_ATTR_ACL] = bl;
+
   store->set_atomic(s->obj_ctx, obj);
+
+  if (!s->object.empty()) {
+    ret = get_obj_attrs(store, s, obj, attrs);
+    if (ret < 0)
+      return;
+  }
+  
+  attrs[RGW_ATTR_ACL] = bl;
+
   if (!s->object.empty()) {
     ret = store->set_attrs(s->obj_ctx, obj, attrs, NULL, ptracker);
   } else {