erofs: use struct lockref to replace handcrafted approach
authorGao Xiang <hsiangkao@linux.alibaba.com>
Mon, 29 May 2023 12:37:27 +0000 (20:37 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Sun, 18 Jun 2023 04:10:47 +0000 (12:10 +0800)
commit7674a42f35ea302b97ff3659f2e6f28be23ac9b9
treed9a389e6de99448c65c93cb79389e1e19cdd0d6e
parent7b4e372c36fcd33c74ba3cbd65fa534b9c558184
erofs: use struct lockref to replace handcrafted approach

Let's avoid the current handcrafted lockref although `struct lockref`
inclusion usually increases extra 4 bytes with an explicit spinlock if
CONFIG_DEBUG_SPINLOCK is off.

Apart from the size difference, note that the meaning of refcount is
also changed to active users. IOWs, it doesn't take an extra refcount
for XArray tree insertion.

I don't observe any significant performance difference at least on
our cloud compute server but the new one indeed simplifies the
overall codebase a bit.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Yue Hu <huyue2@coolpad.com>
Link: https://lore.kernel.org/r/20230529123727.79943-1-hsiangkao@linux.alibaba.com
fs/erofs/internal.h
fs/erofs/utils.c
fs/erofs/zdata.c