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]>