On Wed, Jun 24, 2009 at 10:58:49AM -0700, Marcelo Leal wrote:
> Hello Jonathan,
>  You are saying that the SEEK_HOLE and SEEK_DATA are implemented on
>  the "birth_txg" and not on the "fill_count"?

Um, no, I don't think so.  I was just saying that for most people checking for
holes, they use "blk_birth" to check for them.  Since all the fields are
zero, that's not always the case.  For SEEK_*, it's actually based on the fill
value.

uts/common/fs/zfs/dnode.c:
static int
dnode_next_offset_level(dnode_t *dn, int flags, uint64_t *offset,
        int lvl, uint64_t blkfill, uint64_t txg)
{
...
                        if (bp[i].blk_fill >= minfill &&
                            bp[i].blk_fill <= maxfill &&
                            (hole || bp[i].blk_birth > txg))
                                break;
...


Cheers,
- jonathan

Reply via email to