Hello,
Do the logical block id-s of a given dnode form a single id space, or are they
layered per level?
In other words, do all blocks, regardless of their level belong to the same id
space 0..n
or is each level assigned its own set ob block id-s 0..n?
I am guessing it is a single id space per dnode, but I notice many of the block traversal
primitives take both the id and the level.
Logically, from the point of view of a 'client', when you refer to a
block of a dnode, it is a single id space, e.g. dbuf_hold(). However, it
is implemented in a tree like structure which gives rise
to multiple levels with each level having its own set of ids e.g.
dbuf_impl_hold(..., level = 0, blkid)->dbuf_findbp()->
dbuf_hold_impl(...,level=1, blkid >> shift,...) -> ...
-- Bhaskar
_______________________________________________
zfs-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-code