Clear ExtentMap (esp shards, etc.) when an object is removed. Otherwise
if we recreate it we will have stale state (like the shards vector or
inline_bl) that are bogus.
Signed-off-by: Sage Weil <sage@redhat.com>
txc->t->rmkey(PREFIX_OBJ, s.key);
}
txc->t->rmkey(PREFIX_OBJ, o->key);
+ o->extent_map.clear();
_debug_obj_on_delete(o->oid);
return 0;
}
extent_map.clear_and_dispose([&](Extent *e) { delete e; });
}
+ void clear() {
+ extent_map.clear();
+ extent_map.clear_and_dispose([&](Extent *e) { delete e; });
+ shards.clear();
+ inline_bl.clear();
+ needs_reshard = false;
+ }
+
bool encode_some(uint32_t offset, uint32_t length, bufferlist& bl,
unsigned *pn);
void decode_some(bufferlist& bl);