]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge branch 'dont-cache-recovery' of git://github.com/yuyuyu101/ceph
authorSage Weil <sage@redhat.com>
Thu, 20 Aug 2015 19:20:44 +0000 (15:20 -0400)
committerSage Weil <sage@redhat.com>
Thu, 20 Aug 2015 19:20:44 +0000 (15:20 -0400)
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
# Conflicts:
# src/osd/ReplicatedBackend.cc
# src/osd/ReplicatedBackend.h
# src/osd/ReplicatedPG.cc

1  2 
src/osd/ECBackend.cc
src/osd/PGBackend.h
src/osd/ReplicatedBackend.cc
src/osd/ReplicatedBackend.h
src/osd/ReplicatedPG.cc

Simple merge
Simple merge
index 9af193db6672e46627bc9455ff52dff3eba3fe4f,73906b4bec60fb3b92b07d77fd1f7af8549d41d4..5ddc9fd311efce061cc5109525e367fafe077411
@@@ -1607,8 -1608,8 +1611,9 @@@ void ReplicatedBackend::prep_push
    const hobject_t& soid, pg_shard_t peer,
    eversion_t version,
    interval_set<uint64_t> &data_subset,
 -  map<hobject_t, interval_set<uint64_t> >& clone_subsets,
 -  PushOp *pop, bool cache_dont_need)
 +  map<hobject_t, interval_set<uint64_t>, hobject_t::BitwiseComparator>& clone_subsets,
-   PushOp *pop)
++  PushOp *pop,
++  bool cache_dont_need)
  {
    get_parent()->begin_peer_recover(peer, soid);
    // take note.
index 216067561e6270933a919c15b33c81ed5610d226,f66c461a86844626976e8c64574e8f77c8d3064e..155abfb881de87a3a33afb890818e7c061a4394d
@@@ -299,8 -302,9 +302,9 @@@ private
                 const hobject_t& soid, pg_shard_t peer,
                 eversion_t version,
                 interval_set<uint64_t> &data_subset,
 -               map<hobject_t, interval_set<uint64_t> >& clone_subsets,
 +               map<hobject_t, interval_set<uint64_t>, hobject_t::BitwiseComparator>& clone_subsets,
-                PushOp *op);
+                PushOp *op,
+                  bool cache = false);
    void calc_head_subsets(ObjectContextRef obc, SnapSet& snapset, const hobject_t& head,
                         const pg_missing_t& missing,
                         const hobject_t &last_backfill,
index 035149d8825bfdd119decfcbf7e1fc4096d15159,d34ad92696b8202f7d8559f24c975e75f9e9ef82..5a0eda2cc384ccd10e9db2d8bc56587f8dd60d16
@@@ -371,21 -371,24 +371,22 @@@ bool ReplicatedPG::is_missing_object(co
    return pg_log.get_missing().missing.count(soid);
  }
  
 -void ReplicatedPG::wait_for_unreadable_object(
 -  const hobject_t& soid, OpRequestRef op)
 +void ReplicatedPG::maybe_kick_recovery(
 +  const hobject_t &soid)
  {
 -  assert(is_unreadable_object(soid));
 -
    eversion_t v;
 -  bool needs_recovery = missing_loc.needs_recovery(soid, &v);
 -  assert(needs_recovery);
 +  if (!missing_loc.needs_recovery(soid, &v))
 +    return;
  
 -  map<hobject_t, ObjectContextRef>::const_iterator p = recovering.find(soid);
 +  map<hobject_t, ObjectContextRef, hobject_t::BitwiseComparator>::const_iterator p = recovering.find(soid);
    if (p != recovering.end()) {
 -    dout(7) << "missing " << soid << " v " << v << ", already recovering." << dendl;
 +    dout(7) << "object " << soid << " v " << v << ", already recovering." << dendl;
    } else if (missing_loc.is_unfound(soid)) {
 -    dout(7) << "missing " << soid << " v " << v << ", is unfound." << dendl;
 +    dout(7) << "object " << soid << " v " << v << ", is unfound." << dendl;
    } else {
 -    dout(7) << "missing " << soid << " v " << v << ", recovering." << dendl;
 +    dout(7) << "object " << soid << " v " << v << ", recovering." << dendl;
      PGBackend::RecoveryHandle *h = pgbackend->open_recovery_op();
+     h->cache_dont_need = false;
      if (is_missing_object(soid)) {
        recover_missing(soid, v, cct->_conf->osd_client_op_priority, h);
      } else {