> +struct _map_info {
> + xfs_bmbt_irec_t *map; /* map vector for blocks */
> + xfs_extlen_t map_blocks; /* number of fsbs in map */
> + xfs_dablk_t map_off; /* last mapped file offset */
> + int map_size; /* total entries in *map */
> + int map_valid; /* valid entries in *map */
> + int nmap; /* mappings to ask xfs_bmapi */
> + xfs_dir2_db_t curdb; /* db for current block */
> +};
> +
> +struct _ra_info {
Can you give these structure names xfs_dir2_leaf prefixes, please?
Also any reason the ra_info structure is kept entirely separate? While
I see a bit of a point to have a logical grouping, it still semes more
useful to just embedd it into the map_info.
> + map_info.map_size = howmany(bufsize + mp->m_dirblksize,
> + mp->m_sb.sb_blocksize);
> + map_info.map = kmem_zalloc(map_info.map_size *
> + sizeof(struct xfs_bmbt_irec), KM_SLEEP);
I'd be tempted to say that the map field in the map_info should be a
variable sized array the end, and the whole structure should be
dynamically allocated to get a couple more variables off the stack.
Except for these nitpicks this looks like a great cleanup to me.
|