summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2015-01-19 14:15:19 -0500
committerKeith Bostic <keith@wiredtiger.com>2015-01-19 14:15:19 -0500
commit5ec9c2a04e62de02a87d4a2a60b1a62064d92093 (patch)
tree16ab313a6808157ee9d54aa55085642f92063aa6
parent6f3c5a933ef8ce79efc03a22a8c03526ffb2197b (diff)
downloadmongo-5ec9c2a04e62de02a87d4a2a60b1a62064d92093.tar.gz
The by-offset list is sorted by offset, quit looking for slots past the
limit.
-rw-r--r--src/block/block_compact.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/block/block_compact.c b/src/block/block_compact.c
index 79494a274a9..24fd45da47f 100644
--- a/src/block/block_compact.c
+++ b/src/block/block_compact.c
@@ -148,11 +148,14 @@ __wt_block_compact_page_skip(WT_SESSION_IMPL *session,
ninety = fh->size - fh->size / 10;
if (offset > ninety) {
el = &block->live.avail;
- WT_EXT_FOREACH(ext, el->off)
- if (ext->off < ninety && ext->size >= size) {
+ WT_EXT_FOREACH(ext, el->off) {
+ if (ext->off >= ninety)
+ break;
+ if (ext->size >= size) {
*skipp = 0;
break;
}
+ }
}
__wt_spin_unlock(session, &block->live_lock);