namespace librbd {
struct BlockExtent {
+ // [block_start, block_end)
uint64_t block_start = 0;
uint64_t block_end = 0;
int detain(const BlockExtent &block_extent, BlockOperation *block_operation,
BlockGuardCell **cell) {
std::lock_guard locker{m_lock};
- ldout(m_cct, 20) << "block_start=" << block_extent.block_start << ", "
- << "block_end=" << block_extent.block_end << ", "
+ ldout(m_cct, 20) << "[block_start=" << block_extent.block_start << ", "
+ << "block_end=" << block_extent.block_end << "), "
<< "free_slots=" << m_free_detained_block_extents.size()
<< dendl;
ceph_assert(cell != nullptr);
auto &detained_block_extent = reinterpret_cast<DetainedBlockExtent &>(
*cell);
- ldout(m_cct, 20) << "block_start="
+ ldout(m_cct, 20) << "[block_start="
<< detained_block_extent.block_extent.block_start << ", "
<< "block_end="
- << detained_block_extent.block_extent.block_end << ", "
+ << detained_block_extent.block_extent.block_end << "), "
<< "pending_ops="
<< (detained_block_extent.block_operations.empty() ?
0 : detained_block_extent.block_operations.size() - 1)