Previosly, _scrub checked:
assert(p->second.size == snapset.clone_size[curclone])
curclone was, however, an index into snapset.clones rather than a
snapid_t. For clarity, curclone is now an iterator.
Signed-off-by: Samuel Just <samuelj@hq.newdream.net>
// traverse in reverse order.
sobject_t head;
SnapSet snapset;
- unsigned curclone = 0;
+ vector<snapid_t>::reverse_iterator curclone;
pg_stat_t stat;
if (snapset.clones.empty())
head = sobject_t(); // no clones.
else {
- curclone = snapset.clones.size()-1;
+ curclone = snapset.clones.rbegin();
head = p->first;
}
stat.num_object_clones++;
- assert(soid.snap == snapset.clones[curclone]);
+ assert(soid.snap == *curclone);
- assert(p->second.size == snapset.clone_size[curclone]);
+ assert(p->second.size == snapset.clone_size[*curclone]);
// verify overlap?
// ...
// what's next?
- if (curclone == 0)
+ if (curclone == snapset.clones.rend())
head = sobject_t();
else
curclone--;