This introduce Kconfig and Makefile for remade ntfs.
And this patch make ntfs and ntfs3 mutually exclusive so only one can be
built-in(y), while both can still be built as modules(m).
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
---
fs/Kconfig | 1 +
fs/Makefile | 1 +
fs/ntfs/Kconfig | 45 +++++++++++++++++++++++++++++++++++++++++++++
fs/ntfs/Makefile | 13 +++++++++++++
fs/ntfs3/Kconfig | 1 +
5 files changed, 61 insertions(+)
create mode 100644 fs/ntfs/Kconfig
create mode 100644 fs/ntfs/Makefile
diff --git a/fs/Kconfig b/fs/Kconfig
index 0bfdaecaa877..43cb06de297f 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -152,6 +152,7 @@ menu "DOS/FAT/EXFAT/NT Filesystems"
source "fs/fat/Kconfig"
source "fs/exfat/Kconfig"
+source "fs/ntfs/Kconfig"
source "fs/ntfs3/Kconfig"
endmenu
diff --git a/fs/Makefile b/fs/Makefile
index a04274a3c854..6893496697c4 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -90,6 +90,7 @@ obj-$(CONFIG_NLS) += nls/
obj-y += unicode/
obj-$(CONFIG_SMBFS) += smb/
obj-$(CONFIG_HPFS_FS) += hpfs/
+obj-$(CONFIG_NTFS_FS) += ntfs/
obj-$(CONFIG_NTFS3_FS) += ntfs3/
obj-$(CONFIG_UFS_FS) += ufs/
obj-$(CONFIG_EFS_FS) += efs/
diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig
new file mode 100644
index 000000000000..6b49c99e4834
--- /dev/null
+++ b/fs/ntfs/Kconfig
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config NTFS_FS
+ tristate "NTFS file system support"
+ select NLS
+ help
+ NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
+ This allows you to mount devices formatted with the ntfs file system.
+
+ To compile this as a module, choose M here: the module will be called
+ ntfs.
+
+config NTFS_DEBUG
+ bool "NTFS debugging support"
+ depends on NTFS_FS
+ help
+ If you are experiencing any problems with the NTFS file system, say
+ Y here. This will result in additional consistency checks to be
+ performed by the driver as well as additional debugging messages to
+ be written to the system log. Note that debugging messages are
+ disabled by default. To enable them, supply the option debug_msgs=1
+ at the kernel command line when booting the kernel or as an option
+ to insmod when loading the ntfs module. Once the driver is active,
+ you can enable debugging messages by doing (as root):
+ echo 1 > /proc/sys/fs/ntfs-debug
+ Replacing the "1" with "0" would disable debug messages.
+
+ If you leave debugging messages disabled, this results in little
+ overhead, but enabling debug messages results in very significant
+ slowdown of the system.
+
+ When reporting bugs, please try to have available a full dump of
+ debugging messages while the misbehaviour was occurring.
+
+config NTFS_FS_POSIX_ACL
+ bool "NTFS POSIX Access Control Lists"
+ depends on NTFS_FS
+ select FS_POSIX_ACL
+ help
+ POSIX Access Control Lists (ACLs) support additional access rights
+ for users and groups beyond the standard owner/group/world scheme,
+ and this option selects support for ACLs specifically for ntfs
+ filesystems.
+ NOTE: this is linux only feature. Windows will ignore these ACLs.
+
+ If you don't know what Access Control Lists are, say N.
diff --git a/fs/ntfs/Makefile b/fs/ntfs/Makefile
new file mode 100644
index 000000000000..d235ce03289e
--- /dev/null
+++ b/fs/ntfs/Makefile
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the ntfs filesystem support.
+#
+
+obj-$(CONFIG_NTFS_FS) += ntfs.o
+
+ntfs-y := aops.o attrib.o collate.o dir.o file.o index.o inode.o \
+ mft.o mst.o namei.o runlist.o super.o unistr.o attrlist.o ea.o \
+ upcase.o bitmap.o lcnalloc.o logfile.o reparse.o compress.o \
+ iomap.o debug.o sysctl.o quota.o
+
+ccflags-$(CONFIG_NTFS_DEBUG) += -DDEBUG
diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig
index cdfdf51e55d7..876dbc613ae6 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 !NTFS_FS || m
select BUFFER_HEAD
select NLS
select LEGACY_DIRECT_IO
--
2.25.1
On Tue, Jan 6, 2026 at 2:26 PM Namjae Jeon <linkinjeon@kernel.org> wrote: > > This introduce Kconfig and Makefile for remade ntfs. > And this patch make ntfs and ntfs3 mutually exclusive so only one can be > built-in(y), while both can still be built as modules(m). > > Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> > --- > fs/Kconfig | 1 + > fs/Makefile | 1 + > fs/ntfs/Kconfig | 45 +++++++++++++++++++++++++++++++++++++++++++++ > fs/ntfs/Makefile | 13 +++++++++++++ > fs/ntfs3/Kconfig | 1 + > 5 files changed, 61 insertions(+) > create mode 100644 fs/ntfs/Kconfig > create mode 100644 fs/ntfs/Makefile > > diff --git a/fs/Kconfig b/fs/Kconfig > index 0bfdaecaa877..43cb06de297f 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -152,6 +152,7 @@ menu "DOS/FAT/EXFAT/NT Filesystems" > > source "fs/fat/Kconfig" > source "fs/exfat/Kconfig" > +source "fs/ntfs/Kconfig" > source "fs/ntfs3/Kconfig" > > endmenu > diff --git a/fs/Makefile b/fs/Makefile > index a04274a3c854..6893496697c4 100644 > --- a/fs/Makefile > +++ b/fs/Makefile > @@ -90,6 +90,7 @@ obj-$(CONFIG_NLS) += nls/ > obj-y += unicode/ > obj-$(CONFIG_SMBFS) += smb/ > obj-$(CONFIG_HPFS_FS) += hpfs/ > +obj-$(CONFIG_NTFS_FS) += ntfs/ > obj-$(CONFIG_NTFS3_FS) += ntfs3/ > obj-$(CONFIG_UFS_FS) += ufs/ > obj-$(CONFIG_EFS_FS) += efs/ > diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig > new file mode 100644 > index 000000000000..6b49c99e4834 > --- /dev/null > +++ b/fs/ntfs/Kconfig > @@ -0,0 +1,45 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +config NTFS_FS > + tristate "NTFS file system support" > + select NLS > + help > + NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003. > + This allows you to mount devices formatted with the ntfs file system. > + > + To compile this as a module, choose M here: the module will be called > + ntfs. > + > +config NTFS_DEBUG > + bool "NTFS debugging support" > + depends on NTFS_FS > + help > + If you are experiencing any problems with the NTFS file system, say > + Y here. This will result in additional consistency checks to be > + performed by the driver as well as additional debugging messages to > + be written to the system log. Note that debugging messages are > + disabled by default. To enable them, supply the option debug_msgs=1 > + at the kernel command line when booting the kernel or as an option > + to insmod when loading the ntfs module. Once the driver is active, > + you can enable debugging messages by doing (as root): > + echo 1 > /proc/sys/fs/ntfs-debug > + Replacing the "1" with "0" would disable debug messages. > + > + If you leave debugging messages disabled, this results in little > + overhead, but enabling debug messages results in very significant > + slowdown of the system. > + > + When reporting bugs, please try to have available a full dump of > + debugging messages while the misbehaviour was occurring. > + > +config NTFS_FS_POSIX_ACL > + bool "NTFS POSIX Access Control Lists" > + depends on NTFS_FS > + select FS_POSIX_ACL > + help > + POSIX Access Control Lists (ACLs) support additional access rights > + for users and groups beyond the standard owner/group/world scheme, > + and this option selects support for ACLs specifically for ntfs > + filesystems. > + NOTE: this is linux only feature. Windows will ignore these ACLs. > + > + If you don't know what Access Control Lists are, say N. > diff --git a/fs/ntfs/Makefile b/fs/ntfs/Makefile > new file mode 100644 > index 000000000000..d235ce03289e > --- /dev/null > +++ b/fs/ntfs/Makefile > @@ -0,0 +1,13 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# > +# Makefile for the ntfs filesystem support. > +# > + > +obj-$(CONFIG_NTFS_FS) += ntfs.o > + > +ntfs-y := aops.o attrib.o collate.o dir.o file.o index.o inode.o \ > + mft.o mst.o namei.o runlist.o super.o unistr.o attrlist.o ea.o \ > + upcase.o bitmap.o lcnalloc.o logfile.o reparse.o compress.o \ > + iomap.o debug.o sysctl.o quota.o > + > +ccflags-$(CONFIG_NTFS_DEBUG) += -DDEBUG > diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig > index cdfdf51e55d7..876dbc613ae6 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 !NTFS_FS || m Do you need this also in config NTFS_FS or is this here enough? Maybe add the explicit dependency also there for clarity? Thanks, Amir.
On Wed, Jan 7, 2026 at 12:03 AM Amir Goldstein <amir73il@gmail.com> wrote: > > On Tue, Jan 6, 2026 at 2:26 PM Namjae Jeon <linkinjeon@kernel.org> wrote: > > > > This introduce Kconfig and Makefile for remade ntfs. > > And this patch make ntfs and ntfs3 mutually exclusive so only one can be > > built-in(y), while both can still be built as modules(m). > > > > Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> > > Reviewed-by: Amir Goldstein <amir73il@gmail.com> Thanks! > > > --- > > fs/Kconfig | 1 + > > fs/Makefile | 1 + > > fs/ntfs/Kconfig | 45 +++++++++++++++++++++++++++++++++++++++++++++ > > fs/ntfs/Makefile | 13 +++++++++++++ > > fs/ntfs3/Kconfig | 1 + > > 5 files changed, 61 insertions(+) > > create mode 100644 fs/ntfs/Kconfig > > create mode 100644 fs/ntfs/Makefile > > > > diff --git a/fs/Kconfig b/fs/Kconfig > > index 0bfdaecaa877..43cb06de297f 100644 > > --- a/fs/Kconfig > > +++ b/fs/Kconfig > > @@ -152,6 +152,7 @@ menu "DOS/FAT/EXFAT/NT Filesystems" > > > > source "fs/fat/Kconfig" > > source "fs/exfat/Kconfig" > > +source "fs/ntfs/Kconfig" > > source "fs/ntfs3/Kconfig" > > > > endmenu > > diff --git a/fs/Makefile b/fs/Makefile > > index a04274a3c854..6893496697c4 100644 > > --- a/fs/Makefile > > +++ b/fs/Makefile > > @@ -90,6 +90,7 @@ obj-$(CONFIG_NLS) += nls/ > > obj-y += unicode/ > > obj-$(CONFIG_SMBFS) += smb/ > > obj-$(CONFIG_HPFS_FS) += hpfs/ > > +obj-$(CONFIG_NTFS_FS) += ntfs/ > > obj-$(CONFIG_NTFS3_FS) += ntfs3/ > > obj-$(CONFIG_UFS_FS) += ufs/ > > obj-$(CONFIG_EFS_FS) += efs/ > > diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig > > new file mode 100644 > > index 000000000000..6b49c99e4834 > > --- /dev/null > > +++ b/fs/ntfs/Kconfig > > @@ -0,0 +1,45 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > +config NTFS_FS > > + tristate "NTFS file system support" > > + select NLS > > + help > > + NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003. > > + This allows you to mount devices formatted with the ntfs file system. > > + > > + To compile this as a module, choose M here: the module will be called > > + ntfs. > > + > > +config NTFS_DEBUG > > + bool "NTFS debugging support" > > + depends on NTFS_FS > > + help > > + If you are experiencing any problems with the NTFS file system, say > > + Y here. This will result in additional consistency checks to be > > + performed by the driver as well as additional debugging messages to > > + be written to the system log. Note that debugging messages are > > + disabled by default. To enable them, supply the option debug_msgs=1 > > + at the kernel command line when booting the kernel or as an option > > + to insmod when loading the ntfs module. Once the driver is active, > > + you can enable debugging messages by doing (as root): > > + echo 1 > /proc/sys/fs/ntfs-debug > > + Replacing the "1" with "0" would disable debug messages. > > + > > + If you leave debugging messages disabled, this results in little > > + overhead, but enabling debug messages results in very significant > > + slowdown of the system. > > + > > + When reporting bugs, please try to have available a full dump of > > + debugging messages while the misbehaviour was occurring. > > + > > +config NTFS_FS_POSIX_ACL > > + bool "NTFS POSIX Access Control Lists" > > + depends on NTFS_FS > > + select FS_POSIX_ACL > > + help > > + POSIX Access Control Lists (ACLs) support additional access rights > > + for users and groups beyond the standard owner/group/world scheme, > > + and this option selects support for ACLs specifically for ntfs > > + filesystems. > > + NOTE: this is linux only feature. Windows will ignore these ACLs. > > + > > + If you don't know what Access Control Lists are, say N. > > diff --git a/fs/ntfs/Makefile b/fs/ntfs/Makefile > > new file mode 100644 > > index 000000000000..d235ce03289e > > --- /dev/null > > +++ b/fs/ntfs/Makefile > > @@ -0,0 +1,13 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +# > > +# Makefile for the ntfs filesystem support. > > +# > > + > > +obj-$(CONFIG_NTFS_FS) += ntfs.o > > + > > +ntfs-y := aops.o attrib.o collate.o dir.o file.o index.o inode.o \ > > + mft.o mst.o namei.o runlist.o super.o unistr.o attrlist.o ea.o \ > > + upcase.o bitmap.o lcnalloc.o logfile.o reparse.o compress.o \ > > + iomap.o debug.o sysctl.o quota.o > > + > > +ccflags-$(CONFIG_NTFS_DEBUG) += -DDEBUG > > diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig > > index cdfdf51e55d7..876dbc613ae6 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 !NTFS_FS || m > > Do you need this also in config NTFS_FS or is this here enough? Adding it only here was enough when I tested. > Maybe add the explicit dependency also there for clarity? I couldn't add it to NTFS_FS kconfig because it triggers a recursive dependency error. error: recursive dependency detected! symbol NTFS_FS depends on NTFS3_FS symbol NTFS3_FS depends on NTFS_FS For a resolution refer to Documentation/kbuild/kconfig-language.rst subsection "Kconfig recursive dependency limitations" make[2]: *** [scripts/kconfig/Makefile:56: menuconfig] Error 1 make[1]: *** [/home/linkinjeon/linux/namjae/smb3-kernel/Makefile:742: menuconfig] Error 2 make: *** [Makefile:248: __sub-make] Error 2 > > Thanks, > Amir.
© 2016 - 2026 Red Hat, Inc.