Since we create the instance entry at the bucket index, we should also
remove it. Otherwise we end up with objects that have bucket index
entries, but don't have olh. In these cases we'll be failin operations
on these objects, as their bucket index olh tag will always mismatch the
actual object olh tag.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
if (!obj.is_delete_marker()) {
olh.update_log(CLS_RGW_OLH_OP_REMOVE_INSTANCE, op.op_tag, op.key, false);
+ } else {
+ /* this is a delete marker, it's our responsibility to remove its instance entry */
+ ret = obj.unlink();
+ if (ret < 0) {
+ return ret;
+ }
}
ret = obj.unlink_list_entry();