]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: sysobj_core: filter sysobj attrs
authorYehuda Sadeh <yehuda@redhat.com>
Sat, 3 Nov 2018 02:36:44 +0000 (19:36 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Thu, 8 Nov 2018 17:19:30 +0000 (09:19 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/services/svc_sys_obj_core.cc

index f57337b09a71ace0c65787a302cc8cdf355ad337..e2c8514c26d7cd229150d57fcbcc8bfed4d57e28 100644 (file)
@@ -203,8 +203,10 @@ int RGWSI_SysObj_Core::read(RGWSysObjectCtxBase& obj_ctx,
   ldout(cct, 20) << "rados->read ofs=" << ofs << " len=" << len << dendl;
   op.read(ofs, len, bl, nullptr);
 
+  map<string, bufferlist> unfiltered_attrset;
+
   if (attrs) {
-    op.getxattrs(attrs, nullptr);
+    op.getxattrs(&unfiltered_attrset, nullptr);
   }
 
   RGWSI_RADOS::Obj rados_obj;
@@ -228,6 +230,10 @@ int RGWSI_SysObj_Core::read(RGWSysObjectCtxBase& obj_ctx,
     return -ECANCELED;
   }
 
+  if (attrs) {
+    rgw_filter_attrset(unfiltered_attrset, RGW_ATTR_PREFIX, attrs);
+  }
+
   read_state.last_ver = op_ver;
 
   return bl->length();