mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 19:34:43 +01:00
DDT: Make ddt_zap_walk() use cursor _by_dnode functions
ddt_zap_walk() already receives dnode as an argument. We can save one dnode_hold() per entry by using _by_dnode cursor functions. zap_cursor_init_noprefetch_by_dnode() is added in the process. Signed-off-by: Alexander Motin <[email protected]> Reviewed-by: Rob Norris <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Closes #18888
This commit is contained in:
1 parent
845cd967ee
commit
674b1ae5cd
3 files changed
+9
-3
No files matched your search
@@ -474,6 +474,7 @@ void zap_cursor_fini(zap_cursor_t *zc);
|
||||
*/
|
||||
int zap_cursor_init_noprefetch(zap_cursor_t *zc, objset_t *os,
|
||||
uint64_t zapobj);
|
||||
int zap_cursor_init_noprefetch_by_dnode(zap_cursor_t *zc, dnode_t *dn);
|
||||
|
||||
/*
|
||||
* Initialize a zap cursor pointing to the position recorded by
|
||||
|
||||
@@ -204,10 +204,9 @@ ddt_zap_walk(dnode_t *dn, uint64_t *walk, ddt_key_t *ddk,
|
||||
* scrub I/Os for each ZAP block that we read in, so
|
||||
* reading the ZAP is unlikely to be the bottleneck.
|
||||
*/
|
||||
zap_cursor_init_noprefetch(&zc, dn->dn_objset, dn->dn_object);
|
||||
zap_cursor_init_noprefetch_by_dnode(&zc, dn);
|
||||
} else {
|
||||
zap_cursor_init_serialized(&zc, dn->dn_objset, dn->dn_object,
|
||||
*walk);
|
||||
zap_cursor_init_serialized_by_dnode(&zc, dn, *walk);
|
||||
}
|
||||
if ((error = zap_cursor_retrieve(&zc, za)) == 0) {
|
||||
uint64_t csize = za->za_num_integers;
|
||||
|
||||
@@ -1108,6 +1108,12 @@ zap_cursor_init_noprefetch(zap_cursor_t *zc, objset_t *os, uint64_t zapobj)
|
||||
return (zap_cursor_init_impl(zc, os, zapobj, 0, B_FALSE));
|
||||
}
|
||||
|
||||
int
|
||||
zap_cursor_init_noprefetch_by_dnode(zap_cursor_t *zc, dnode_t *dn)
|
||||
{
|
||||
return (zap_cursor_init_by_dnode_impl(zc, dn, 0, B_FALSE));
|
||||
}
|
||||
|
||||
int
|
||||
zap_cursor_init_serialized(zap_cursor_t *zc, objset_t *os, uint64_t zapobj,
|
||||
uint64_t serialized)
|
||||
|
||||
Reference in new issue
Block a user