]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix modification to index attrs when setting acls 6620/head
authorbrian <bjfelton@gmail.com>
Wed, 23 Sep 2015 14:49:36 +0000 (09:49 -0500)
committerNathan Cutler <ncutler@suse.com>
Tue, 17 Nov 2015 19:51:12 +0000 (20:51 +0100)
Fixes: #12955
 - add ACL change after initial population
 - populate bufferlist with object attributes

Signed-off-by: Brian Felton <bjfelton@gmail.com>
(cherry picked from commit 7496741ebbd75b74d5ffeca5341cccb2318176e6)

src/rgw/rgw_op.cc

index 4301bdde8b4c78829330d39114bdf1a01e5f69d9..2ac298fedafaabde372dddfe6c475908b722ff5c 100644 (file)
@@ -2562,8 +2562,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 {