<< ")";
}
+
+std::ostream &operator<<(std::ostream &out, const extent_info_t &info)
+{
+ return out << "extent_info_t("
+ << " type: " << info.type
+ << " addr: " << info.addr
+ << " len: " << info.len
+ << ")";
+}
+
segment_nonce_t generate_nonce(
segment_seq_t seq,
const seastore_meta_t &meta)
DENC_FINISH(p);
}
};
+std::ostream &operator<<(std::ostream &out, const extent_info_t &header);
/**
* Callback interface for managing available segments
CachedExtentRef extent)
{
if (extent->has_been_invalidated()) {
- logger().debug("BTreeLBAManager::rewrite_extent: {} is invalid, returning eagain");
+ logger().debug(
+ "BTreeLBAManager::rewrite_extent: {} is invalid, returning eagain",
+ *extent
+ );
return crimson::ct_error::eagain::make();
}
+ logger().debug(
+ "{}: rewriting {}",
+ __func__,
+ *extent);
+
if (extent->is_logical()) {
auto lextent = extent->cast<LogicalCachedExtent>();
cache.retire_extent(t, extent);
std::move(_extents),
[this](auto &extents) {
return repeat_eagain([this, &extents]() mutable {
+ logger().debug(
+ "SegmentCleaner::gc_reclaim_space: processing {} extents",
+ extents.size());
return seastar::do_with(
make_transaction(),
[this, &extents](auto &t) mutable {
laddr_t laddr,
segment_off_t len)
{
+ logger().debug(
+ "TransactionManager::get_extent_if_live:"
+ " type {}, addr {}, laddr {}, len {}",
+ type,
+ addr,
+ laddr,
+ len);
CachedExtentRef ret;
auto status = cache->get_extent_if_cached(t, addr, &ret);
if (status != Transaction::get_extent_ret::ABSENT) {