From: Li Wang Date: Tue, 10 Nov 2015 09:01:47 +0000 (+0800) Subject: osd: trivial optimization X-Git-Tag: v10.0.1~75^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d290b276644a890cdde5c479eb2b514c3f166b6c;p=ceph.git osd: trivial optimization Signed-off-by: Li Wang --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 8a50060e6179..ad51c86b05d6 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -4026,12 +4026,14 @@ void PG::chunky_scrub(ThreadPool::TPHandle &handle) // walk the log to find the latest update that affects our chunk scrubber.subset_last_update = pg_log.get_tail(); - for (list::const_iterator p = pg_log.get_log().log.begin(); - p != pg_log.get_log().log.end(); + for (list::const_reverse_iterator p = pg_log.get_log().log.rbegin(); + p != pg_log.get_log().log.rend(); ++p) { if (cmp(p->soid, scrubber.start, get_sort_bitwise()) >= 0 && - cmp(p->soid, scrubber.end, get_sort_bitwise()) < 0) + cmp(p->soid, scrubber.end, get_sort_bitwise()) < 0) { scrubber.subset_last_update = p->version; + break; + } } // ask replicas to wait until last_update_applied >= scrubber.subset_last_update and then scan