Mike Shaver writes:
> Just to make sure I understand this correctly:
> - when an inode has <= EFS_DIRECTEXTENTS extents, they're stored directly
> in the inode.
> - when an inode has > EFS_DIRECTEXTENTS extents, the extents in the
> inode refer to contiguous block regions that contain extents referring
> to the real data.
> The EFS code that Alan posted, in addition to having a curious
> aversion to structures, seemed to think that the first 4 bytes of
> dinode->di_u were the block number of a block containing extents, and
> thus doesn't work very well with files with numext >
> EFS_DIRECTEXTENTS. I just want to ensure that I make a sane fix.
The above is correct. When there are indirect extents,
the offset field of the first indirect extent in the inode
contains the number of indirect extents, not a file offset.