diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_trans_space.h')
| -rw-r--r-- | fs/xfs/libxfs/xfs_trans_space.h | 29 | 
1 files changed, 17 insertions, 12 deletions
diff --git a/fs/xfs/libxfs/xfs_trans_space.h b/fs/xfs/libxfs/xfs_trans_space.h index 87b31c69a773..1155ff2d37e2 100644 --- a/fs/xfs/libxfs/xfs_trans_space.h +++ b/fs/xfs/libxfs/xfs_trans_space.h @@ -10,6 +10,10 @@   * Components of space reservations.   */ +/* Worst case number of bmaps that can be held in a block. */ +#define XFS_MAX_CONTIG_BMAPS_PER_BLOCK(mp)    \ +		(((mp)->m_bmap_dmxr[0]) - ((mp)->m_bmap_dmnr[0])) +  /* Worst case number of rmaps that can be held in a block. */  #define XFS_MAX_CONTIG_RMAPS_PER_BLOCK(mp)    \  		(((mp)->m_rmap_mxr[0]) - ((mp)->m_rmap_mnr[0])) @@ -76,31 +80,32 @@  /* This macro is not used - see inline code in xfs_attr_set */  #define	XFS_ATTRSET_SPACE_RES(mp, v)	\  	(XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK) + XFS_B_TO_FSB(mp, v)) -#define	XFS_CREATE_SPACE_RES(mp,nl)	\ -	(XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl))  #define	XFS_DIOSTRAT_SPACE_RES(mp, v)	\  	(XFS_EXTENTADD_SPACE_RES(mp, XFS_DATA_FORK) + (v))  #define	XFS_GROWFS_SPACE_RES(mp)	\  	(2 * (mp)->m_alloc_maxlevels)  #define	XFS_GROWFSRT_SPACE_RES(mp,b)	\  	((b) + XFS_EXTENTADD_SPACE_RES(mp, XFS_DATA_FORK)) -#define	XFS_LINK_SPACE_RES(mp,nl)	\ -	XFS_DIRENTER_SPACE_RES(mp,nl) -#define	XFS_MKDIR_SPACE_RES(mp,nl)	\ -	(XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl))  #define	XFS_QM_DQALLOC_SPACE_RES(mp)	\  	(XFS_EXTENTADD_SPACE_RES(mp, XFS_DATA_FORK) + \  	 XFS_DQUOT_CLUSTER_SIZE_FSB)  #define	XFS_QM_QINOCREATE_SPACE_RES(mp)	\  	XFS_IALLOC_SPACE_RES(mp) -#define	XFS_REMOVE_SPACE_RES(mp)	\ -	XFS_DIRREMOVE_SPACE_RES(mp) -#define	XFS_RENAME_SPACE_RES(mp,nl)	\ -	(XFS_DIRREMOVE_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl)) -#define	XFS_SYMLINK_SPACE_RES(mp,nl,b)	\ -	(XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl) + (b))  #define XFS_IFREE_SPACE_RES(mp)		\  	(xfs_has_finobt(mp) ? M_IGEO(mp)->inobt_maxlevels : 0) +unsigned int xfs_parent_calc_space_res(struct xfs_mount *mp, +		unsigned int namelen); + +unsigned int xfs_create_space_res(struct xfs_mount *mp, unsigned int namelen); +unsigned int xfs_mkdir_space_res(struct xfs_mount *mp, unsigned int namelen); +unsigned int xfs_link_space_res(struct xfs_mount *mp, unsigned int namelen); +unsigned int xfs_symlink_space_res(struct xfs_mount *mp, unsigned int namelen, +		unsigned int fsblocks); +unsigned int xfs_remove_space_res(struct xfs_mount *mp, unsigned int namelen); + +unsigned int xfs_rename_space_res(struct xfs_mount *mp, +		unsigned int src_namelen, bool target_exists, +		unsigned int target_namelen, bool has_whiteout);  #endif	/* __XFS_TRANS_SPACE_H__ */  |