| 227 | |
| 228 | template <typename I> |
| 229 | void ObjectMap<I>::aio_resize(uint64_t new_size, uint8_t default_object_state, |
| 230 | Context *on_finish) { |
| 231 | ceph_assert(ceph_mutex_is_locked(m_image_ctx.owner_lock)); |
| 232 | ceph_assert(ceph_mutex_is_locked(m_image_ctx.image_lock)); |
| 233 | ceph_assert(m_image_ctx.test_features(RBD_FEATURE_OBJECT_MAP, |
| 234 | m_image_ctx.image_lock)); |
| 235 | ceph_assert(m_image_ctx.image_watcher != NULL); |
| 236 | ceph_assert(m_image_ctx.exclusive_lock == nullptr || |
| 237 | m_image_ctx.exclusive_lock->is_lock_owner()); |
| 238 | |
| 239 | Context *ctx = create_context_callback<Context>(on_finish, this); |
| 240 | |
| 241 | object_map::ResizeRequest *req = new object_map::ResizeRequest( |
| 242 | m_image_ctx, &m_lock, &m_object_map, m_snap_id, new_size, |
| 243 | default_object_state, ctx); |
| 244 | req->send(); |
| 245 | } |
| 246 | |
| 247 | template <typename I> |
| 248 | void ObjectMap<I>::detained_aio_update(UpdateOperation &&op) { |
no test coverage detected