Patch ntfsplus kernel module to support nowindows_names

This commit is contained in:
2026-09-06 00:16:05 +02:00
parent cbf9cc29ca
commit ba0c0d55ce
5 changed files with 85 additions and 0 deletions
@@ -0,0 +1,13 @@
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -91,7 +91,7 @@ static const struct fs_parameter_spec ntfs_parameters[] = {
fsparam_flag("sys_immutable", Opt_sys_immutable),
fsparam_flag("nohidden", Opt_nohidden),
fsparam_flag("hide_dot_files", Opt_hide_dot_files),
- fsparam_flag("windows_names", Opt_check_windows_names),
+ fsparam_bool("windows_names", Opt_check_windows_names),
fsparam_flag("acl", Opt_acl),
fsparam_flag("discard", Opt_discard),
fsparam_flag("sparse", Opt_sparse),
@@ -0,0 +1,20 @@
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
--- a/fs/ntfs/namei.c
+++ b/fs/ntfs/namei.c
@@ -61,12 +61,12 @@ static int ntfs_check_bad_windows_name(struct ntfs_volume *vol,
const __le16 *wc,
unsigned int wc_len)
{
- if (ntfs_check_bad_char(wc, wc_len))
- return -EINVAL;
-
if (!NVolCheckWindowsNames(vol))
return 0;
+ if (ntfs_check_bad_char(wc, wc_len))
+ return -EINVAL;
+
/* Check for trailing space or dot. */
if (wc_len > 0 &&
(wc[wc_len - 1] == cpu_to_le16(' ') ||
+13
View File
@@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
{
boot.extraModulePackages = [
((pkgs.callPackage ../../pkgs/ntfs/package.nix { kernel = config.boot.kernelPackages.kernel; }).overrideAttrs {
patches = [
./ntfsplus-patches/0001-fix-windows_names-option.patch
./ntfsplus-patches/0002-gate-bad-character-check-by-windows_names.patch
];
})
];
}