// single object? easy!
if (num_obj == 1) {
object_t oid = file_object_t(ino, first_obj);
- object_locator_t oloc = objecter->osdmap->file_to_object_locator(*layout);
+ const OSDMap *osdmap = objecter->get_osdmap_read();
+ object_locator_t oloc = osdmap->file_to_object_locator(*layout);
+ objecter->put_osdmap_read();
objecter->remove(oid, oloc, snapc, mtime, flags, NULL, oncommit);
return 0;
}
int max = 10 - pr->uncommitted;
while (pr->num > 0 && max > 0) {
object_t oid = file_object_t(pr->ino, pr->first);
- object_locator_t oloc = objecter->osdmap->file_to_object_locator(pr->layout);
+ const OSDMap *osdmap = objecter->get_osdmap_read();
+ object_locator_t oloc = osdmap->file_to_object_locator(pr->layout);
+ objecter->put_osdmap_read();
objecter->remove(oid, oloc, pr->snapc, pr->mtime, pr->flags,
NULL, new C_PurgeRange(this, pr));
pr->uncommitted++;