Commit 8f6f9b09 authored by John Garry's avatar John Garry Committed by Long Li
Browse files

xfs: Only free full extents for forcealign

maillist inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I9VTE3
CVE: NA

Reference: https://lore.kernel.org/all/20240326133813.3224593-1-john.g.garry@oracle.com/



--------------------------------

Like we already do for rtvol, only free full extents for forcealign in
xfs_free_file_space().

Signed-off-by: default avatarJohn Garry <john.g.garry@oracle.com>
Signed-off-by: default avatarLong Li <leo.lilong@huawei.com>
parent 61dc2920
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -928,8 +928,11 @@ xfs_free_file_space(
	startoffset_fsb = XFS_B_TO_FSB(mp, offset);
	endoffset_fsb = XFS_B_TO_FSBT(mp, offset + len);

	/* We can only free complete realtime extents. */
	if (XFS_IS_REALTIME_INODE(ip) && mp->m_sb.sb_rextsize > 1) {
	/* Free only complete extents. */
	if (xfs_inode_forcealign(ip) && ip->i_d.di_extsize > 1) {
		startoffset_fsb = roundup_64(startoffset_fsb, ip->i_d.di_extsize);
		endoffset_fsb = rounddown_64(endoffset_fsb, ip->i_d.di_extsize);
	} else if (XFS_IS_REALTIME_INODE(ip) && mp->m_sb.sb_rextsize > 1) {
		startoffset_fsb = roundup_64(startoffset_fsb,
					     mp->m_sb.sb_rextsize);
		endoffset_fsb = rounddown_64(endoffset_fsb,