Re: [PATCH] ntfs: fix FITRIM range alignment
From: Namjae Jeon
Date: Sat Aug 29 2026 - 22:48:57 EST
On Sun, Aug 30, 2026 at 9:15 AM Jacopo Labardi <jacopolabardi@xxxxxxxxx> wrote:
>
> ntfs_trim_fs() aligns the start of a free extent up to the device discard
> granularity, but derives the discard length by aligning the original extent
> length down. When the free extent start is not discard-aligned, adding that
> length to the aligned start can extend the discard past the free extent and
> into allocated clusters.
>
> For example, with 4 KiB clusters and 32 KiB discard granularity, the free
> extent [4 KiB, 36 KiB) becomes the discard range [32 KiB, 64 KiB), so
> 28 KiB beyond the free extent may be discarded.
>
> Align the absolute end of the free extent down and derive the length from
> the two aligned endpoints. Skip extents that contain no full discard unit.
>
> Reproduced with a 4 KiB-cluster NTFS filesystem on scsi_debug configured
> for 32 KiB discard granularity and read-zero-after-trim. Before this
> change, FITRIM zeroed seven allocated 4 KiB clusters following an unaligned
> 32 KiB hole. With this change, the same data remains intact across FITRIM
> and remount.
>
> Fixes: 11ccc9107dc4 ("ntfs: update runlist handling and cluster allocator")
> Cc: stable@xxxxxxxxxxxxxxx
> Assisted-by: OpenAI Codex:GPT-5.6 Sol Max
> Signed-off-by: Jacopo Labardi <jacopolabardi@xxxxxxxxx>
Applied it to #ntfs-next.
Thanks!