diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index adc49fe31bdd401a9261d9b684f466bdeef8cccd..743c7ffdc31683d14af8e479de08cdaf84f4496a 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1295,7 +1295,7 @@ xfs_mod_fdblocks( * problems (i.e. transaction abort, pagecache discards, etc.) than * slightly premature -ENOSPC. */ - set_aside = mp->m_alloc_set_aside + atomic64_read(&mp->m_allocbt_blks); + set_aside = xfs_fdblocks_unavailable(mp); percpu_counter_add_batch(&mp->m_fdblocks, delta, batch); if (__percpu_counter_compare(&mp->m_fdblocks, set_aside, XFS_FDBLOCKS_BATCH) >= 0) { diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 80ec62ba6bd899cf38d0bafc0bfd44fd99b85e9d..3dc54ed4315acb9a0a46cfd2385f96cd0bd7cb43 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -478,7 +478,7 @@ static inline uint64_t xfs_fdblocks_unavailable( struct xfs_mount *mp) { - return mp->m_alloc_set_aside; + return mp->m_alloc_set_aside + atomic64_read(&mp->m_allocbt_blks); } extern int xfs_mod_fdblocks(struct xfs_mount *mp, int64_t delta,