diff options
| author | Mark Brown <broonie@kernel.org> | 2019-06-18 19:12:47 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2019-06-18 19:12:47 +0100 |
| commit | e1d700f7c94e755106749411706a38e39a93404b (patch) | |
| tree | b1230cb7eba5a4ef28ed2cd2527d9ac78f06cc00 /fs/xfs/libxfs/xfs_ialloc_btree.c | |
| parent | ba576a6232dc06605f4edfaeea9b526ba7724f84 (diff) | |
| parent | d1fdb6d8f6a4109a4263176c84b899076a5f8008 (diff) | |
Merge tag 'v5.2-rc4' into regulator-5.3
Linux 5.2-rc4
Diffstat (limited to 'fs/xfs/libxfs/xfs_ialloc_btree.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_ialloc_btree.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c index 1080381ff243..bc2dfacd2f4a 100644 --- a/fs/xfs/libxfs/xfs_ialloc_btree.c +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c @@ -549,6 +549,15 @@ xfs_inobt_max_size( if (mp->m_inobt_mxr[0] == 0) return 0; + /* + * The log is permanently allocated, so the space it occupies will + * never be available for the kinds of things that would require btree + * expansion. We therefore can pretend the space isn't there. + */ + if (mp->m_sb.sb_logstart && + XFS_FSB_TO_AGNO(mp, mp->m_sb.sb_logstart) == agno) + agblocks -= mp->m_sb.sb_logblocks; + return xfs_btree_calc_size(mp->m_inobt_mnr, (uint64_t)agblocks * mp->m_sb.sb_inopblock / XFS_INODES_PER_CHUNK); |