Re: [PATCH] fs/ntfs3: fix mount failure on 64K page-size kernels

Matt Ochs <[email protected]> Thu, 14 May 2026 23:27:40 +0000
Newsgroups dev.linux.lists.ntfs3,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
> On Apr 28, 2026, at 10:45, Jamie Nguyen <[email protected]> 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 <[email protected]>

Tested with 4k and 64k page sizes.

Tested-by: Matthew R. Ochs <[email protected]>