Micro-optimize zrl_remove()
atomic_dec_32() should be a bit lighter than atomic_dec_32_nv(). Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Closes #14200
This commit is contained in:
parent
e996c502e4
commit
f0a76fbec1
|
@ -106,16 +106,16 @@ zrl_add_impl(zrlock_t *zrl, const char *zc)
|
|||
void
|
||||
zrl_remove(zrlock_t *zrl)
|
||||
{
|
||||
uint32_t n;
|
||||
|
||||
#ifdef ZFS_DEBUG
|
||||
if (zrl->zr_owner == curthread) {
|
||||
zrl->zr_owner = NULL;
|
||||
zrl->zr_caller = NULL;
|
||||
}
|
||||
int32_t n = atomic_dec_32_nv((uint32_t *)&zrl->zr_refcount);
|
||||
ASSERT3S(n, >=, 0);
|
||||
#else
|
||||
atomic_dec_32((uint32_t *)&zrl->zr_refcount);
|
||||
#endif
|
||||
n = atomic_dec_32_nv((uint32_t *)&zrl->zr_refcount);
|
||||
ASSERT3S((int32_t)n, >=, 0);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in New Issue