"{} {}~0x{:x} is absent, add extent and reading range 0x{:x}~0x{:x} ... -- {}",
T::TYPE, offset, length, partial_off, partial_len, *ret);
add_extent(ret);
- // touch_extent() should be included in on_cache
- on_cache(*ret);
extent_init_func(*ret);
+ // touch_extent() should be included in on_cache,
+ // required by add_extent()
+ on_cache(*ret);
return read_extent<T>(
std::move(ret), partial_off, partial_len, p_src);
}
"{} {}~0x{:x} is absent(placeholder), add extent and reading range 0x{:x}~0x{:x} ... -- {}",
T::TYPE, offset, length, partial_off, partial_len, *ret);
extents_index.replace(*ret, *cached);
- on_cache(*ret);
// replace placeholder in transactions
while (!cached->read_transactions.empty()) {
cached->state = CachedExtent::extent_state_t::INVALID;
extent_init_func(*ret);
+ on_cache(*ret);
return read_extent<T>(
std::move(ret), partial_off, partial_len, p_src);
}