diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_dir2.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_dir2.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c index 5f1e4799e8fa..3cd51fa3837b 100644 --- a/fs/xfs/libxfs/xfs_dir2.c +++ b/fs/xfs/libxfs/xfs_dir2.c @@ -150,6 +150,8 @@ xfs_da_mount(  	dageo->freeblk = xfs_dir2_byte_to_da(dageo, XFS_DIR2_FREE_OFFSET);  	dageo->node_ents = (dageo->blksize - dageo->node_hdr_size) /  				(uint)sizeof(xfs_da_node_entry_t); +	dageo->max_extents = (XFS_DIR2_MAX_SPACES * XFS_DIR2_SPACE_SIZE) >> +					mp->m_sb.sb_blocklog;  	dageo->magicpct = (dageo->blksize * 37) / 100;  	/* set up attribute geometry - single fsb only */ @@ -161,6 +163,12 @@ xfs_da_mount(  	dageo->node_hdr_size = mp->m_dir_geo->node_hdr_size;  	dageo->node_ents = (dageo->blksize - dageo->node_hdr_size) /  				(uint)sizeof(xfs_da_node_entry_t); + +	if (xfs_has_large_extent_counts(mp)) +		dageo->max_extents = XFS_MAX_EXTCNT_ATTR_FORK_LARGE; +	else +		dageo->max_extents = XFS_MAX_EXTCNT_ATTR_FORK_SMALL; +  	dageo->magicpct = (dageo->blksize * 37) / 100;  	return 0;  }  |