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