Don't skip the counting if fcount_incr() is called with force==true (v2)

The fcount_incr() was not increasing counter->count when force was set
to true, but fcount_decr() would try to decrease the counter leading to
underflow and assertion failure.  Swap the order of the arguments in the
condition, so the !force is evaluated after incrementing the .count.

(cherry picked from commit 8e86e55af1)
This commit is contained in:
Ondřej Surý 2024-08-13 12:48:23 +02:00 committed by Ondřej Surý
parent 085098c6fb
commit afb345b0e8

View file

@ -1487,7 +1487,7 @@ fcount_incr(fetchctx_t *fctx, bool force) {
INSIST(spill > 0);
LOCK(&counter->lock);
if (!force && ++counter->count > spill) {
if (++counter->count > spill && !force) {
counter->count--;
INSIST(counter->count > 0);
counter->dropped++;