Re: [PATCH] fs/ntfs3: fix mount failure on 64K page-size kernels
From: Matt Ochs
Date: Thu May 14 2026 - 19:27:53 EST
> On Apr 28, 2026, at 10:45, Jamie Nguyen <jamien@xxxxxxxxxx> wrote:
>
> On 64K page-size kernels, mounting NTFS volumes smaller than ~650 MB
> fails with EINVAL. The issue is in log_replay(): the initial log page
> size probe uses PAGE_SIZE (65536) instead of DefaultLogPageSize (4096)
> when PAGE_SIZE exceeds DefaultLogPageSize * 2.
>
> This makes norm_file_page() require the $LogFile to be at least
> 50 * 65536 = 3.2 MB, but mkfs.ntfs creates a $LogFile of only ~1.5 MB
> for a typical 300 MB volume. norm_file_page() returns 0 and the mount
> is rejected with EINVAL.
>
> On 4K kernels the #if guard evaluates to true, so use_default=true is
> passed and DefaultLogPageSize (4096) is used, requiring only ~200 KB.
> This path works fine.
>
> Fix this by always passing use_default=true, which forces the initial
> probe to use DefaultLogPageSize regardless of the kernel's PAGE_SIZE.
> This is safe because, after reading the on-disk restart area, log_replay()
> already re-adjusts log->page_size to match the volume's actual
> sys_page_size.
>
> Also fix read_log_page() to pass log->page_size instead of PAGE_SIZE to
> ntfs_fix_post_read(), matching the actual buffer size.
>
> Fixes: b46acd6a6a62 ("fs/ntfs3: Add NTFS journal")
> Signed-off-by: Jamie Nguyen <jamien@xxxxxxxxxx>
Tested with 4k and 64k page sizes.
Tested-by: Matthew R. Ochs <mochs@xxxxxxxxxx>