]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: pass features through to proxied read op
authorSage Weil <sage@redhat.com>
Mon, 16 Feb 2015 17:21:17 +0000 (09:21 -0800)
committerSage Weil <sage@redhat.com>
Mon, 16 Feb 2015 17:21:41 +0000 (09:21 -0800)
If we proxy a read, pass the original client's features through.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/ReplicatedPG.cc
src/osdc/Objecter.h

index 3f0ee679d48851dac123c79eb6fb128560cde757..35d41ab565fd94aaf2d9c5196456b2a52493770d 100644 (file)
@@ -2046,7 +2046,8 @@ void ReplicatedPG::do_proxy_read(OpRequestRef op)
     m->get_snapid(), NULL,
     flags, new C_OnFinisher(fin, &osd->objecter_finisher),
     &prdop->user_version,
-    &prdop->data_offset);
+    &prdop->data_offset,
+    m->get_features());
   fin->tid = tid;
   prdop->objecter_tid = tid;
   proxyread_ops[tid] = prdop;
index fecf6cd9b2c8b043cad05f9c61ea6eb28ddf7569..46f47d30447148153ec87c416abbf9f5fa8b9c4c 100644 (file)
@@ -2052,10 +2052,13 @@ public:
     return o;
   }
   ceph_tid_t read(const object_t& oid, const object_locator_t& oloc,
-            ObjectOperation& op,
-            snapid_t snapid, bufferlist *pbl, int flags,
-            Context *onack, version_t *objver = NULL, int *data_offset = NULL) {
+                 ObjectOperation& op,
+                 snapid_t snapid, bufferlist *pbl, int flags,
+                 Context *onack, version_t *objver = NULL, int *data_offset = NULL,
+                 uint64_t features = 0) {
     Op *o = prepare_read_op(oid, oloc, op, snapid, pbl, flags, onack, objver, data_offset);
+    if (features)
+      o->features = features;
     return op_submit(o);
   }
   ceph_tid_t pg_read(uint32_t hash, object_locator_t oloc,