From: Yehuda Sadeh Date: Fri, 24 Jan 2014 23:33:57 +0000 (-0800) Subject: rgw: simplify a code path X-Git-Tag: v0.78~270^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9413a5196ea1e2b6f50218afb0aa5684d287c48b;p=ceph.git rgw: simplify a code path remove some duplicate code. Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_quota.cc b/src/rgw/rgw_quota.cc index 7a967cbe88a0..6487b1f8badb 100644 --- a/src/rgw/rgw_quota.cc +++ b/src/rgw/rgw_quota.cc @@ -694,35 +694,34 @@ public: virtual int check_quota(const string& user, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t num_objs, uint64_t size) { + + if (!bucket_quota.enabled && !user_quota.enabled) + return 0; + uint64_t size_kb = rgw_rounded_objsize_kb(size); - if (bucket_quota.enabled) { - RGWStorageStats bucket_stats; + RGWStorageStats bucket_stats; - int ret = bucket_stats_cache.get_stats(user, bucket, bucket_stats, bucket_quota); - if (ret < 0) - return ret; + /* + * we need to fetch bucket stats if the user quota is enabled, because the whole system relies + * on us periodically updating the user's bucket stats in the user's header, this happens in + * get_stats() if we actually fetch that info and not rely on cached data + */ + + int ret = bucket_stats_cache.get_stats(user, bucket, bucket_stats, bucket_quota); + if (ret < 0) + return ret; + if (bucket_quota.enabled) { ret = check_quota("bucket", bucket_quota, bucket_stats, num_objs, size_kb); if (ret < 0) return ret; - } else if (user_quota.enabled) { - /* - * we need to fetch bucket stats if the user quota is enabled, because the whole system relies - * on us periodically updating the user's bucket stats in the user's header, this happens in - * get_stats() if we actually fetch that info and not rely on cached data - */ - RGWStorageStats bucket_stats; - - int ret = bucket_stats_cache.get_stats(user, bucket, bucket_stats, bucket_quota); - if (ret < 0) - return ret; } if (user_quota.enabled) { RGWStorageStats user_stats; - int ret = user_stats_cache.get_stats(user, bucket, user_stats, user_quota); + ret = user_stats_cache.get_stats(user, bucket, user_stats, user_quota); if (ret < 0) return ret;