From: Sage Weil Date: Mon, 16 Feb 2015 17:21:17 +0000 (-0800) Subject: osd: pass features through to proxied read op X-Git-Tag: v0.93~10^2~5 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=70eab06549b6a23019ac902d1716fe4410c61d07;p=ceph.git osd: pass features through to proxied read op If we proxy a read, pass the original client's features through. Signed-off-by: Sage Weil --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 3f0ee679d4885..35d41ab565fd9 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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; diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index fecf6cd9b2c8b..46f47d3044714 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -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,