Re: drivers/block/rbd.c: atomic_inc_return_safe() & atomic_dec_return_safe()

From: Shuah Khan
Date: Fri Oct 02 2020 - 19:50:12 EST


On 10/2/20 5:44 PM, Jens Axboe wrote:
On 10/2/20 4:34 PM, Shuah Khan wrote:
All,

I came across these atomic_inc_return_safe() & atomic_dec_return_safe()
functions that hold the counters at safe values.

atomic_inc_return_safe()

If the counter is already 0 it will not be incremented.
If the counter is already at its maximum value returns
-EINVAL without updating it.

atomic_dec_return_safe()

Decrement the counter. Return the resulting value, or -EINVAL

These two routines are static and only used in rbd.c.

Can these become part of atomic_t ops?

I think you just want to use refcount_t for this use case. They
have safe guards for under/overflow.


Makes sense. Guess these came before refcount_t.

I will track this for refcount_t conversion.

thanks,
-- Shuah