aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/bpobj.c
diff options
context:
space:
mode:
authorAlexander Motin <[email protected]>2024-03-25 17:58:50 -0400
committerGitHub <[email protected]>2024-03-25 14:58:50 -0700
commit80cc516295fef1a429542fcfeea369c6bbb85ce4 (patch)
tree30b9d9df590252a12821f43d9de500a8253b51cd /module/zfs/bpobj.c
parentbf8f72359d1bf0cdb6a4b31ccfc7bbef0f948ca4 (diff)
ZAP: Massively switch to _by_dnode() interfaces
Before this change ZAP called dnode_hold() for almost every block access, that was clearly visible in profiler under heavy load, such as BRT. This patch makes it always hold the dnode reference between zap_lockdir() and zap_unlockdir(). It allows to avoid most of dnode operations between those. It also adds several new _by_dnode() APIs to ZAP and uses them in BRT code. Also adds dmu_prefetch_by_dnode() variant and uses it in the ZAP code. After this there remains only one call to dmu_buf_dnode_enter(), which seems to be unneeded. So remove the call and the functions. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #15951
Diffstat (limited to 'module/zfs/bpobj.c')
0 files changed, 0 insertions, 0 deletions