diff --git a/src/core/lib/iomgr/resource_quota.c b/src/core/lib/iomgr/resource_quota.c
index bfc905845d6191ef7e3b84776b3c0035e9237f10..e39cf28e356e04df07f1f2a793e2f10ced4e5c90 100644
--- a/src/core/lib/iomgr/resource_quota.c
+++ b/src/core/lib/iomgr/resource_quota.c
@@ -166,8 +166,11 @@ static void rq_step(grpc_exec_ctx *exec_ctx, void *rq, grpc_error *error) {
   do {
     if (rq_alloc(exec_ctx, resource_quota)) goto done;
   } while (rq_reclaim_from_per_user_free_pool(exec_ctx, resource_quota));
-  rq_reclaim(exec_ctx, resource_quota, false) ||
-      rq_reclaim(exec_ctx, resource_quota, true);
+
+  if (!rq_reclaim(exec_ctx, resource_quota, false)) {
+    rq_reclaim(exec_ctx, resource_quota, true);
+  }
+
 done:
   grpc_resource_quota_internal_unref(exec_ctx, resource_quota);
 }