num_objs = Striper::get_num_objects(
m_image_ctx.layout, m_image_ctx.get_image_size(m_snap_id));
}
- assert(m_on_disk_object_map.size() >= num_objs);
+ ceph_assert(m_on_disk_object_map.size() >= num_objs);
*m_object_map = m_on_disk_object_map;
}
CephContext *cct = m_image_ctx.cct;
ldout(cct, 10) << this << " " << __func__ << dendl;
- assert(*ret_val == 0);
+ ceph_assert(*ret_val == 0);
send_load();
return nullptr;
}
librados::AioCompletion *rados_completion =
create_rados_callback<klass, &klass::handle_load>(this);
int r = m_image_ctx.md_ctx.aio_operate(oid, rados_completion, &op, &m_out_bl);
- assert(r == 0);
+ ceph_assert(r == 0);
rados_completion->release();
}
ldout(cct, 10) << this << " " << __func__ << ": r=" << *ret_val << dendl;
if (*ret_val == 0) {
- bufferlist::iterator bl_it = m_out_bl.begin();
+ auto bl_it = m_out_bl.cbegin();
*ret_val = cls_client::object_map_load_finish(&bl_it,
&m_on_disk_object_map);
}
CephContext *cct = m_image_ctx.cct;
ldout(cct, 10) << this << " " << __func__ << ": r=" << *ret_val << dendl;
- assert(*ret_val == 0);
+ if (*ret_val < 0) {
+ lderr(cct) << "failed to invalidate object map: " << cpp_strerror(*ret_val)
+ << dendl;
+ }
+
apply();
return m_on_finish;
}
CephContext *cct = m_image_ctx.cct;
ldout(cct, 10) << this << " " << __func__ << ": r=" << *ret_val << dendl;
- assert(*ret_val == 0);
+ if (*ret_val < 0) {
+ lderr(cct) << "failed to invalidate object map: " << cpp_strerror(*ret_val)
+ << dendl;
+ apply();
+ return m_on_finish;
+ }
+
send_resize();
return nullptr;
}
librados::AioCompletion *rados_completion =
create_rados_callback<klass, &klass::handle_resize>(this);
int r = m_image_ctx.md_ctx.aio_operate(oid, rados_completion, &op);
- assert(r == 0);
+ ceph_assert(r == 0);
rados_completion->release();
}
<< dendl;
*ret_val = 0;
}
+
apply();
return m_on_finish;
}
CephContext *cct = m_image_ctx.cct;
ldout(cct, 10) << this << " " << __func__ << ": r=" << *ret_val << dendl;
- assert(*ret_val == 0);
+ if (*ret_val < 0) {
+ lderr(cct) << "failed to invalidate object map: " << cpp_strerror(*ret_val)
+ << dendl;
+ } else {
+ *ret_val = -EFBIG;
+ }
- *ret_val = -EFBIG;
m_object_map->clear();
return m_on_finish;
}