return (bytes + 1023) / 1024;
}
+static inline uint64_t rgw_rounded_objsize_kb(uint64_t bytes)
+{
+ return ((bytes + 4095) & ~4095) / 1024;
+}
+
extern string rgw_string_unquote(const string& s);
extern void parse_csv_string(const string& ival, vector<string>& ovals);
extern int parse_key_value(string& in_str, string& key, string& val);
RGWQuotaStatsUpdate(int _objs_delta, uint64_t _added_bytes, uint64_t _removed_bytes) :
objs_delta(_objs_delta), added_bytes(_added_bytes), removed_bytes(_removed_bytes) {}
bool update(RGWQuotaCacheStats *entry) {
- uint64_t rounded_kb_added = rgw_rounded_kb(added_bytes);
- uint64_t rounded_kb_removed = rgw_rounded_kb(removed_bytes);
+ uint64_t rounded_kb_added = rgw_rounded_objsize_kb(added_bytes);
+ uint64_t rounded_kb_removed = rgw_rounded_objsize_kb(removed_bytes);
entry->stats.num_kb_rounded += (rounded_kb_added - rounded_kb_removed);
entry->stats.num_kb += (added_bytes - removed_bytes) / 1024;
virtual int check_quota(const string& user, rgw_bucket& bucket,
RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota,
uint64_t num_objs, uint64_t size) {
- uint64_t size_kb = rgw_rounded_kb(size);
+ uint64_t size_kb = rgw_rounded_objsize_kb(size);
if (bucket_quota.enabled) {
RGWStorageStats bucket_stats;