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

Method present_rmw_update

src/osd/ECExtentCacheL.cc:198–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

196}
197
198void ECExtentCacheL::present_rmw_update(
199 const hobject_t &oid,
200 write_pin &pin,
201 const extent_map &extents)
202{
203 if (extents.empty()) {
204 return;
205 }
206 auto &eset = get_or_create(oid);
207 for (auto &&res: extents) {
208 eset.traverse_update(
209 pin,
210 res.get_off(),
211 res.get_len(),
212 [&](uint64_t off, uint64_t len,
213 extent *ext, object_extent_set::update_action *action) {
214 action->action = object_extent_set::update_action::NONE;
215 ceph_assert(ext && ext->pinned_by_write());
216 action->bl = bufferlist();
217 action->bl->substr_of(
218 res.get_val(),
219 off - res.get_off(),
220 len);
221 });
222 }
223}
224
225ostream &ECExtentCacheL::print(ostream &out) const
226{

Callers 2

TESTFunction · 0.80
try_reads_to_commitMethod · 0.80

Calls 7

traverse_updateMethod · 0.80
pinned_by_writeMethod · 0.80
emptyMethod · 0.45
get_offMethod · 0.45
get_lenMethod · 0.45
substr_ofMethod · 0.45
get_valMethod · 0.45

Tested by 1

TESTFunction · 0.64