* non-bad ways this could happen (there probably are, but annoying
* to handle!) */
}
+
// encode a suggested removal of that key
list_state.ver.epoch = io_ctx.get_last_version();
list_state.ver.pool = io_ctx.get_id();
object.meta.owner_display_name = owner.get_display_name();
// encode suggested updates
- list_state.ver.pool = io_ctx.get_id();
- list_state.ver.epoch = astate->epoch;
+
list_state.meta.size = object.meta.size;
list_state.meta.accounted_size = object.meta.accounted_size;
list_state.meta.mtime = object.meta.mtime;
list_state.meta.category = main_category;
list_state.meta.etag = etag;
list_state.meta.content_type = content_type;
- if (astate->obj_tag.length() > 0)
+
+ librados::IoCtx head_obj_ctx; // initialize to data pool so we can get pool id
+ const bool head_pool_found =
+ get_obj_head_ioctx(bucket_info, obj, &head_obj_ctx);
+ if (head_pool_found) {
+ list_state.ver.pool = head_obj_ctx.get_id();
+ list_state.ver.epoch = astate->epoch;
+ } else {
+ dout(0) << __PRETTY_FUNCTION__ <<
+ " WARNING: unable to find head object data pool for \"" <<
+ obj << "\", not updating version pool/epoch" << dendl;
+ }
+
+ if (astate->obj_tag.length() > 0) {
list_state.tag = astate->obj_tag.c_str();
+ }
list_state.meta.owner = owner.get_id().to_str();
list_state.meta.owner_display_name = owner.get_display_name();