xfs: refcount btree add more reserved blocks
Since XFS reserves a small amount of space in each AG as the minimum free space needed for an operation, save some more space in case we touch the refcount btree. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -52,10 +52,23 @@ STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *);
|
|||||||
STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *,
|
STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *,
|
||||||
xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *);
|
xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *);
|
||||||
|
|
||||||
|
unsigned int
|
||||||
|
xfs_refc_block(
|
||||||
|
struct xfs_mount *mp)
|
||||||
|
{
|
||||||
|
if (xfs_sb_version_hasrmapbt(&mp->m_sb))
|
||||||
|
return XFS_RMAP_BLOCK(mp) + 1;
|
||||||
|
if (xfs_sb_version_hasfinobt(&mp->m_sb))
|
||||||
|
return XFS_FIBT_BLOCK(mp) + 1;
|
||||||
|
return XFS_IBT_BLOCK(mp) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
xfs_extlen_t
|
xfs_extlen_t
|
||||||
xfs_prealloc_blocks(
|
xfs_prealloc_blocks(
|
||||||
struct xfs_mount *mp)
|
struct xfs_mount *mp)
|
||||||
{
|
{
|
||||||
|
if (xfs_sb_version_hasreflink(&mp->m_sb))
|
||||||
|
return xfs_refc_block(mp) + 1;
|
||||||
if (xfs_sb_version_hasrmapbt(&mp->m_sb))
|
if (xfs_sb_version_hasrmapbt(&mp->m_sb))
|
||||||
return XFS_RMAP_BLOCK(mp) + 1;
|
return XFS_RMAP_BLOCK(mp) + 1;
|
||||||
if (xfs_sb_version_hasfinobt(&mp->m_sb))
|
if (xfs_sb_version_hasfinobt(&mp->m_sb))
|
||||||
|
|||||||
@@ -1455,6 +1455,8 @@ typedef __be32 xfs_rmap_ptr_t;
|
|||||||
*/
|
*/
|
||||||
#define XFS_REFC_CRC_MAGIC 0x52334643 /* 'R3FC' */
|
#define XFS_REFC_CRC_MAGIC 0x52334643 /* 'R3FC' */
|
||||||
|
|
||||||
|
unsigned int xfs_refc_block(struct xfs_mount *mp);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BMAP Btree format definitions
|
* BMAP Btree format definitions
|
||||||
|
|||||||
Reference in New Issue
Block a user