if (ret < 0 && ret != -ENOENT)
return ret;
+ // are we actually going to perform this put, or is it too old?
+ if (!check_versions(old_ot.read_version, orig_mtime,
+ objv_tracker.write_version, mtime, sync_type)) {
+ return STATUS_NO_APPLY;
+ }
+
objv_tracker.read_version = old_ot.read_version; /* maintain the obj version we just read */
- ret = store->put_bucket_entrypoint_info(entry, be, false, objv_tracker, mtime);
+ ret = store->put_bucket_entrypoint_info(entry, be, false, objv_tracker, mtime, &attrs);
if (ret < 0)
return ret;
return caps.check_cap("metadata", RGW_CAP_WRITE);
}
void execute();
- virtual const char *name() { return "set_metadata"; }
+ void send_response();
+ virtual const string name() { return "set_metadata"; }
};
class RGWOp_Metadata_Delete : public RGWRESTOp {