| 193 | |
| 194 | template <typename I> |
| 195 | void RebuildObjectMapRequest<I>::send_save_object_map() { |
| 196 | ceph_assert(ceph_mutex_is_locked(m_image_ctx.owner_lock)); |
| 197 | CephContext *cct = m_image_ctx.cct; |
| 198 | |
| 199 | ldout(cct, 5) << this << " send_save_object_map" << dendl; |
| 200 | m_state = STATE_SAVE_OBJECT_MAP; |
| 201 | |
| 202 | // should have been canceled prior to releasing lock |
| 203 | ceph_assert(m_image_ctx.exclusive_lock == nullptr || |
| 204 | m_image_ctx.exclusive_lock->is_lock_owner()); |
| 205 | |
| 206 | std::shared_lock image_locker{m_image_ctx.image_lock}; |
| 207 | ceph_assert(m_image_ctx.object_map != nullptr); |
| 208 | m_image_ctx.object_map->aio_save(this->create_callback_context()); |
| 209 | } |
| 210 | |
| 211 | template <typename I> |
| 212 | void RebuildObjectMapRequest<I>::send_update_header() { |
nothing calls this directly
no test coverage detected