From 6f3f9d361501ab689c26751fb02cae9e09fa46eb Mon Sep 17 00:00:00 2001 From: Zhiqiang Wang Date: Tue, 29 Dec 2015 13:41:55 +0800 Subject: [PATCH] osd: add cache hint when pushing raw clone during recovery When head or snapdir is missing on the primary, we push raw clone to the replicas. Set cache hint also in this case. Signed-off-by: Zhiqiang Wang --- src/osd/ReplicatedBackend.cc | 8 ++++---- src/osd/ReplicatedBackend.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index 6d33c01b948..1ec8cbe571d 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -1571,14 +1571,14 @@ void ReplicatedBackend::prep_push_to_replica( // we need the head (and current SnapSet) locally to do that. if (get_parent()->get_local_missing().is_missing(head)) { dout(15) << "push_to_replica missing head " << head << ", pushing raw clone" << dendl; - return prep_push(obc, soid, peer, pop); + return prep_push(obc, soid, peer, pop, cache_dont_need); } hobject_t snapdir = head; snapdir.snap = CEPH_SNAPDIR; if (get_parent()->get_local_missing().is_missing(snapdir)) { dout(15) << "push_to_replica missing snapdir " << snapdir << ", pushing raw clone" << dendl; - return prep_push(obc, soid, peer, pop); + return prep_push(obc, soid, peer, pop, cache_dont_need); } SnapSetContext *ssc = obc->ssc; @@ -1612,7 +1612,7 @@ void ReplicatedBackend::prep_push_to_replica( void ReplicatedBackend::prep_push(ObjectContextRef obc, const hobject_t& soid, pg_shard_t peer, - PushOp *pop) + PushOp *pop, bool cache_dont_need) { interval_set data_subset; if (obc->obs.oi.size) @@ -1621,7 +1621,7 @@ void ReplicatedBackend::prep_push(ObjectContextRef obc, prep_push(obc, soid, peer, obc->obs.oi.version, data_subset, clone_subsets, - pop); + pop, cache_dont_need); } void ReplicatedBackend::prep_push( diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index a36007d42c2..7a1b72aeb96 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -298,7 +298,8 @@ private: PushOp *pop, bool cache_dont_need = true); void prep_push(ObjectContextRef obc, const hobject_t& oid, pg_shard_t dest, - PushOp *op); + PushOp *op, + bool cache_dont_need); void prep_push(ObjectContextRef obc, const hobject_t& soid, pg_shard_t peer, eversion_t version, -- 2.47.3