From: Chandan Babu R <chandanrlinux@xxxxxxxxx> Source kernel commit: 5f1d5bbfb2e674052a9fe542f53678978af20770 Moving an extent to data fork can cause a sub-interval of an existing extent to be unmapped. This will increase extent count by 1. Mapping in the new extent can increase the extent count by 1 again i.e. | Old extent | New extent | Old extent | Hence number of extents increases by 2. Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Allison Henderson <allison.henderson@xxxxxxxxxx> Signed-off-by: Chandan Babu R <chandanrlinux@xxxxxxxxx> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> --- libxfs/xfs_inode_fork.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libxfs/xfs_inode_fork.h b/libxfs/xfs_inode_fork.h index 917e289..c8f279e 100644 --- a/libxfs/xfs_inode_fork.h +++ b/libxfs/xfs_inode_fork.h @@ -80,6 +80,15 @@ struct xfs_ifork { /* + * Moving an extent to data fork can cause a sub-interval of an existing extent + * to be unmapped. This will increase extent count by 1. Mapping in the new + * extent can increase the extent count by 1 again i.e. + * | Old extent | New extent | Old extent | + * Hence number of extents increases by 2. + */ +#define XFS_IEXT_REFLINK_END_COW_CNT (2) + +/* * Fork handling. */ -- 2.7.4