MCPcopy Create free account
hub / github.com/ceph/ceph / handle_update_object_map

Method handle_update_object_map

src/librbd/object_map/UpdateRequest.cc:74–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72
73template <typename I>
74void UpdateRequest<I>::handle_update_object_map(int r) {
75 ldout(m_image_ctx.cct, 20) << "r=" << r << dendl;
76
77 if (r == -ENOENT && m_ignore_enoent) {
78 r = 0;
79 }
80 if (r < 0 && m_ret_val == 0) {
81 m_ret_val = r;
82 }
83
84 {
85 std::shared_lock image_locker{m_image_ctx.image_lock};
86 std::unique_lock object_map_locker{*m_object_map_lock};
87 update_in_memory_object_map();
88
89 if (m_update_end_object_no < m_end_object_no) {
90 m_update_start_object_no = m_update_end_object_no;
91 update_object_map();
92 return;
93 }
94 }
95
96 // no more batch updates to send
97 complete(m_ret_val);
98}
99
100template <typename I>
101void UpdateRequest<I>::update_in_memory_object_map() {

Callers

nothing calls this directly

Calls 1

update_object_mapFunction · 0.85

Tested by

no test coverage detected