[PATCH v4 13/14] ntfs: add Kconfig and Makefile

Namjae Jeon posted 14 patches 1 month ago
There is a newer version of this series
[PATCH v4 13/14] ntfs: add Kconfig and Makefile
Posted by Namjae Jeon 1 month ago
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
Re: [PATCH v4 13/14] ntfs: add Kconfig and Makefile
Posted by Amir Goldstein 1 month ago
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.
Re: [PATCH v4 13/14] ntfs: add Kconfig and Makefile
Posted by Namjae Jeon 1 month ago
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.