On 11/18 2013 07:01 PM, Christoph Hellwig wrote: >>> I'd prefer to factor this out even further. xfs_ialloc_inode_init and >>> xfs_ifree_cluster already have two pieces of code that calculate these >>> two (with more readable names) and an additional nuber buffers counter >>> we won't need here, it might make most sense to factor that into a >>> single common helper. >> Yup, I also thought this can be factored out, however, I can not figure out >> a meaningful function name at that time due to my poor skill... >> >> How about if we introduce an inline helper to xfs_ialloc.h as below? >> >> /* Helper function to extract the # of blocks/inodes/buffers hint per cluster */ >> static inline void >> xfs_ialloc_get_cluster_hints( >> struct xfs_mount *mp, >> int *nblks; >> int *ninodes; >> int *nbufs) >> { >> .... >> } > > Probably fine to make it an inline. I don't think we need the nbufs > parameter, as it requires the length to calculate, and it's a trivial > length / blks_per_cluster. > > Similarly the ninodes value is trivially calculatable, so it might be > as easy as: > > static inline int > xfs_ialloc_blks_per_cluster(struct xfs_mount *mp) > { > if (mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp)) > return 1; > return XFS_INODE_CLUSTER_SIZE(mp) / mp->m_sb.sb_blocksize; > } > > > ... > > blks_per_cluster = xfs_ialloc_blks_per_cluster(mp); > nbufs = length / blks_per_cluster; > ninodes = blks_per_cluster * mp->m_sb.sb_inopblock; Coool, your idea is better than mine. Thanks, -Jeff _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs