}
continue;
}
+ // it's possible that the pending xattr from this op prevented the olh
+ // object from being cleaned by another thread that was deleting the last
+ // existing version. We invoke a best-effort update_olh here to handle this case.
+ int r = update_olh(dpp, obj_ctx, state, bucket_info, olh_obj);
+ if (r < 0 && r != -ECANCELED) {
+ ldpp_dout(dpp, 20) << "update_olh() target_obj=" << olh_obj << " returned " << r << dendl;
+ }
return ret;
}
break;
if (ret == -ECANCELED) {
continue;
}
+ // it's possible that the pending xattr from this op prevented the olh
+ // object from being cleaned by another thread that was deleting the last
+ // existing version. We invoke a best-effort update_olh here to handle this case.
+ int r = update_olh(dpp, obj_ctx, state, bucket_info, olh_obj, zones_trace);
+ if (r < 0 && r != -ECANCELED) {
+ ldpp_dout(dpp, 20) << "update_olh() target_obj=" << olh_obj << " returned " << r << dendl;
+ }
return ret;
}
break;