On 2024/8/8 21:32, Long Li wrote:
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I9VTE3 CVE: NA
Set the minlen of extent allocation arguments to the alignment size to enforce alignment. This prevents the extent from being misaligned at the tail when we approach a no-space situation.
Although xfs_bmap_select_minlen updates args->minlen alignment, args-> minlen may revert to ap->minlen in subsequent extent allocations, which could violate the tail alignment.
Signed-off-by: Long Li leo.lilong@huawei.com
fs/xfs/libxfs/xfs_bmap.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 284cc73b8bef..34a603c4b2c7 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -3510,6 +3510,7 @@ xfs_bmap_btalloc( */ if (xfs_inode_forcealign(ap->ip) && align) { args.alignment = align;
args.minlen = ap->minlen = align;
建议按照主线的方案,在force aligned的场景下bypass掉出问题的流程,而不是在 这里强制更新minlen。
if (stripe_align == 0 || stripe_align % align) stripe_align = align;
} else {