const rgw_bucket_dir_entry_meta& dir_meta,
const list<cls_rgw_obj_key> *remove_objs, bool log_op,
uint16_t bilog_flags,
- const rgw_zone_set *zones_trace)
+ const rgw_zone_set *zones_trace,
+ const std::string& obj_locator)
{
bufferlist in;
call.tag = tag;
call.key = key;
call.ver = ver;
+ call.locator = obj_locator;
call.meta = dir_meta;
call.log_op = log_op;
call.bilog_flags = bilog_flags;
const cls_rgw_obj_key& key,
const rgw_bucket_dir_entry_meta& dir_meta,
const std::list<cls_rgw_obj_key> *remove_objs, bool log_op,
- uint16_t bilog_op, const rgw_zone_set *zones_trace);
+ uint16_t bilog_op, const rgw_zone_set *zones_trace,
+ const std::string& obj_locator = ""); // ignored if it's the empty string
void cls_rgw_remove_obj(librados::ObjectWriteOperation& o, std::list<std::string>& keep_attr_prefixes);
void cls_rgw_obj_store_pg_ver(librados::ObjectWriteOperation& o, const std::string& attr);
cls_rgw_obj_key key(ent.key.name, ent.key.instance);
cls_rgw_guard_bucket_resharding(o, -ERR_BUSY_RESHARDING);
cls_rgw_bucket_complete_op(o, op, tag, ver, key, dir_meta, remove_objs,
- svc.zone->need_to_log_data(), bilog_flags, &zones_trace);
+ svc.zone->need_to_log_data(), bilog_flags, &zones_trace, obj.key.get_loc());
complete_op_data *arg;
index_completion_manager->create_completion(obj, op, tag, ver, key, dir_meta, remove_objs,
svc.zone->need_to_log_data(), bilog_flags, &zones_trace, &arg);