On Wed, Jun 20, 2012 at 03:27:10AM -0400, Christoph Hellwig wrote: > > +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? Sure. > Also any reason the ra_info structure is kept entirely separate? Logical grouping, easy to validate. > 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. Ok, I can do that. > > + 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. Makes sense, even though we aren't usually under stack pressure here. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs