return 0;
}
+ vector<interval_set<uint64_t>> to_release(pending_release.size());
+ to_release.swap(pending_release);
+
uint64_t seq = log_t.seq = ++log_seq;
assert(want_seq == 0 || want_seq <= seq);
log_t.uuid = super.uuid;
<< " already >= out seq " << seq
<< ", we lost a race against another log flush, done" << dendl;
}
+
+ for (unsigned i = 0; i < to_release.size(); ++i) {
+ for (auto p = to_release[i].begin(); p != to_release[i].end(); ++p) {
+ alloc[i]->release(p.get_start(), p.get_len());
+ }
+ }
+
_update_logger_stats();
return 0;
}
dout(10) << __func__ << dendl;
utime_t start = ceph_clock_now();
- vector<interval_set<uint64_t>> to_release(pending_release.size());
- to_release.swap(pending_release);
flush_bdev(); // FIXME?
_flush_and_sync_log(l);
- for (unsigned i = 0; i < to_release.size(); ++i) {
- for (auto p = to_release[i].begin(); p != to_release[i].end(); ++p) {
- alloc[i]->release(p.get_start(), p.get_len());
- }
- }
+ dout(10) << __func__ << " done in " << (ceph_clock_now() - start) << dendl;
if (_should_compact_log()) {
if (cct->_conf->bluefs_compact_log_sync) {