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
2098a00318
commit
eb68e3cd56
|
@ -106,16 +106,16 @@ zrl_add_impl(zrlock_t *zrl, const char *zc)
|
||||||
void
|
void
|
||||||
zrl_remove(zrlock_t *zrl)
|
zrl_remove(zrlock_t *zrl)
|
||||||
{
|
{
|
||||||
uint32_t n;
|
|
||||||
|
|
||||||
#ifdef ZFS_DEBUG
|
#ifdef ZFS_DEBUG
|
||||||
if (zrl->zr_owner == curthread) {
|
if (zrl->zr_owner == curthread) {
|
||||||
zrl->zr_owner = NULL;
|
zrl->zr_owner = NULL;
|
||||||
zrl->zr_caller = 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
|
#endif
|
||||||
n = atomic_dec_32_nv((uint32_t *)&zrl->zr_refcount);
|
|
||||||
ASSERT3S((int32_t)n, >=, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
Loading…
Reference in New Issue