Re: [PATCH v2 11/11] ntfsplus: add Kconfig and Makefile

From: Namjae Jeon

Date: Thu Nov 27 2025 - 22:02:41 EST


On Thu, Nov 27, 2025 at 10:12 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>
> On Thu, Nov 27, 2025 at 1:40 PM Namjae Jeon <linkinjeon@xxxxxxxxxx> wrote:
> >
> > On Thu, Nov 27, 2025 at 8:22 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote:
> > >
> > > On Thu, Nov 27, 2025 at 6:01 AM Namjae Jeon <linkinjeon@xxxxxxxxxx> wrote:
> > > >
> > > > This adds the Kconfig and Makefile for ntfsplus.
> > > >
> > > > Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx>
> > > > ---
> > > > fs/Kconfig | 1 +
> > > > fs/Makefile | 1 +
> > > > fs/ntfsplus/Kconfig | 45 ++++++++++++++++++++++++++++++++++++++++++++
> > > > fs/ntfsplus/Makefile | 18 ++++++++++++++++++
> > > > 4 files changed, 65 insertions(+)
> > > > create mode 100644 fs/ntfsplus/Kconfig
> > > > create mode 100644 fs/ntfsplus/Makefile
> > > >
> > > > diff --git a/fs/Kconfig b/fs/Kconfig
> > > > index 0bfdaecaa877..70d596b99c8b 100644
> > > > --- a/fs/Kconfig
> > > > +++ b/fs/Kconfig
> > > > @@ -153,6 +153,7 @@ menu "DOS/FAT/EXFAT/NT Filesystems"
> > > > source "fs/fat/Kconfig"
> > > > source "fs/exfat/Kconfig"
> > > > source "fs/ntfs3/Kconfig"
> > > > +source "fs/ntfsplus/Kconfig"
> > > >
> > > > endmenu
> > > > endif # BLOCK
> > > > diff --git a/fs/Makefile b/fs/Makefile
> > > > index e3523ab2e587..2e2473451508 100644
> > > > --- a/fs/Makefile
> > > > +++ b/fs/Makefile
> > > > @@ -91,6 +91,7 @@ obj-y += unicode/
> > > > obj-$(CONFIG_SMBFS) += smb/
> > > > obj-$(CONFIG_HPFS_FS) += hpfs/
> > > > obj-$(CONFIG_NTFS3_FS) += ntfs3/
> > > > +obj-$(CONFIG_NTFSPLUS_FS) += ntfsplus/
> > >
> > > I suggested in another reply to keep the original ntfs name
> > >
> > > More important is to keep your driver linked before the unmaintained
> > > ntfs3, so that it hopefully gets picked up before ntfs3 for auto mount type
> > > if both drivers are built-in.
> > Okay, I will check it:)
> > >
> > > I am not sure if keeping the order here would guarantee the link/registration
> > > order. If not, it may make sense to mutually exclude them as built-in drivers.
> > Okay, I am leaning towards the latter.
>
> Well it's not this OR that.
> please add you driver as the original was before ntfs3
>
> obj-$(CONFIG_NTFS_FS) += ntfs/
> obj-$(CONFIG_NTFS3_FS) += ntfs3/
Okay.
>
> > If you have no objection, I will add the patch to mutually exclude the two ntfs implementation.
>
> You should definitely allow them both if at least one is built as a module
> I think it would be valuable for testing.
>
> Just that
> CONFIG_NTFS_FS=y
> CONFIG_NTFS3_FS=y
>
> I don't see the usefulness in allowing that.
> (other people may disagree)
>
> I think that the way to implement it is using an auxiliary choice config var
> in fs/Kconfig (i.e. CONFIG_DEFAULT_NTFS) and select/depends statements
> to only allow the default ntfs driver to be configured as 'y',
> but couldn't find a good example to point you at.
Okay. Could you please check whether the attached patch matches what
you described ?

Thanks!
>
> Thanks,
> Amir.
From 11154917ff53d6cf218ac58e6776e603246587b6 Mon Sep 17 00:00:00 2001
From: Namjae Jeon <linkinjeon@xxxxxxxxxx>
Date: Fri, 28 Nov 2025 11:44:45 +0900
Subject: [PATCH] ntfs: restrict built-in NTFS seclection to one driver, allow
both as modules

Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx>
---
fs/Kconfig | 11 +++++++++++
fs/ntfs3/Kconfig | 2 ++
fs/ntfsplus/Kconfig | 1 +
3 files changed, 14 insertions(+)

diff --git a/fs/Kconfig b/fs/Kconfig
index 70d596b99c8b..c379383cb4ff 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -155,6 +155,17 @@ source "fs/exfat/Kconfig"
source "fs/ntfs3/Kconfig"
source "fs/ntfsplus/Kconfig"

+choice
+ prompt "Select built-in NTFS filesystem (only one can be built-in)"
+ help
+ Only one NTFS can be built into the kernel(y).
+ Both can still be built as modules(m).
+
+ config DEFAULT_NTFSPLUS
+ bool "NTFS+"
+ config DEFAULT_NTFS3
+ bool "NTFS3"
+endchoice
endmenu
endif # BLOCK

diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig
index 7bc31d69f680..18bd6c98c6eb 100644
--- a/fs/ntfs3/Kconfig
+++ b/fs/ntfs3/Kconfig
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
config NTFS3_FS
tristate "NTFS Read-Write file system support"
+ depends on !DEFAULT_NTFSPLUS || m
select BUFFER_HEAD
select NLS
select LEGACY_DIRECT_IO
@@ -49,6 +50,7 @@ config NTFS3_FS_POSIX_ACL

config NTFS_FS
tristate "NTFS file system support"
+ depends on !DEFAULT_NTFSPLUS || m
select NTFS3_FS
select BUFFER_HEAD
select NLS
diff --git a/fs/ntfsplus/Kconfig b/fs/ntfsplus/Kconfig
index 78bc34840463..c8d1ab99113c 100644
--- a/fs/ntfsplus/Kconfig
+++ b/fs/ntfsplus/Kconfig
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
config NTFSPLUS_FS
tristate "NTFS+ file system support (EXPERIMENTAL)"
+ depends on !DEFAULT_NTFS3 || m
select NLS
help
NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
--
2.34.1