if(perfcounter) perfcounter->inc(l_rgw_cache_miss);
return -ENOENT;
}
- ldout(cct, 10) << "cache get: name=" << name << " : hit" << dendl;
+ ldout(cct, 10) << "cache get: name=" << name << " : hit (requested=" << mask << ", cached=" << src.flags << ")" << dendl;
info = src;
if (cache_info) {
return;
}
- ldout(cct, 10) << "cache put: name=" << name << dendl;
+ ldout(cct, 10) << "cache put: name=" << name << " info.flags=" << info.flags << dendl;
map<string, ObjectCacheEntry>::iterator iter = cache_map.find(name);
if (iter == cache_map.end()) {
ObjectCacheEntry entry;
info.status = 0;
info.flags = CACHE_FLAG_XATTRS;
info.data = data;
- info.flags |= CACHE_FLAG_DATA;
+ info.flags |= CACHE_FLAG_DATA | CACHE_FLAG_META;
if (objv_tracker) {
info.version = objv_tracker->write_version;
info.flags |= CACHE_FLAG_OBJV;
}
- int ret = T::put_system_obj_impl(obj, size, mtime, attrs, flags, data,
+ time_t result_mtime;
+ int ret = T::put_system_obj_impl(obj, size, &result_mtime, attrs, flags, data,
objv_tracker, set_mtime);
+ if (mtime) {
+ *mtime = result_mtime;
+ }
+ info.meta.mtime = result_mtime;
+ info.meta.size = size;
string name = normal_name(bucket, oid);
if (ret >= 0) {
cache.put(name, info, NULL);