Unverified Commit 12dad495 authored by Konstantin Komarov's avatar Konstantin Komarov
Browse files

fs/ntfs3: Add Kconfig, Makefile and doc



This adds Kconfig, Makefile and doc

Signed-off-by: default avatarKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
parent b46acd6a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ Documentation for filesystem implementations.
   nilfs2
   nfs/index
   ntfs
   ntfs3
   ocfs2
   ocfs2-online-filecheck
   omfs
+106 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

=====
NTFS3
=====


Summary and Features
====================

NTFS3 is fully functional NTFS Read-Write driver. The driver works with
NTFS versions up to 3.1, normal/compressed/sparse files
and journal replaying. File system type to use on mount is 'ntfs3'.

- This driver implements NTFS read/write support for normal, sparse and
  compressed files.
- Supports native journal replaying;
- Supports extended attributes
	Predefined extended attributes:
	- 'system.ntfs_security' gets/sets security
			descriptor (SECURITY_DESCRIPTOR_RELATIVE)
	- 'system.ntfs_attrib' gets/sets ntfs file/dir attributes.
		Note: applied to empty files, this allows to switch type between
		sparse(0x200), compressed(0x800) and normal;
- Supports NFS export of mounted NTFS volumes.

Mount Options
=============

The list below describes mount options supported by NTFS3 driver in addition to
generic ones.

===============================================================================

nls=name		This option informs the driver how to interpret path
			strings and translate them to Unicode and back. If
			this option is not set, the default codepage will be
			used (CONFIG_NLS_DEFAULT).
			Examples:
				'nls=utf8'

uid=
gid=
umask=			Controls the default permissions for files/directories created
			after the NTFS volume is mounted.

fmask=
dmask=			Instead of specifying umask which applies both to
			files and directories, fmask applies only to files and
			dmask only to directories.

nohidden		Files with the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN)
			attribute will not be shown under Linux.

sys_immutable		Files with the Windows-specific SYSTEM
			(FILE_ATTRIBUTE_SYSTEM) attribute will be marked as system
			immutable files.

discard			Enable support of the TRIM command for improved performance
			on delete operations, which is recommended for use with the
			solid-state drives (SSD).

force			Forces the driver to mount partitions even if 'dirty' flag
			(volume dirty) is set. Not recommended for use.

sparse			Create new files as "sparse".

showmeta		Use this parameter to show all meta-files (System Files) on
			a mounted NTFS partition.
			By default, all meta-files are hidden.

prealloc		Preallocate space for files excessively when file size is
			increasing on writes. Decreases fragmentation in case of
			parallel write operations to different files.

no_acs_rules		"No access rules" mount option sets access rights for
			files/folders to 777 and owner/group to root. This mount
			option absorbs all other permissions:
			- permissions change for files/folders will be reported
				as successful, but they will remain 777;
			- owner/group change will be reported as successful, but
				they will stay as root

acl			Support POSIX ACLs (Access Control Lists). Effective if
			supported by Kernel. Not to be confused with NTFS ACLs.
			The option specified as acl enables support for POSIX ACLs.

noatime			All files and directories will not update their last access
			time attribute if a partition is mounted with this parameter.
			This option can speed up file system operation.

===============================================================================

ToDo list
=========

- Full journaling support (currently journal replaying is supported) over JBD.


References
==========
https://www.paragon-software.com/home/ntfs-linux-professional/
	- Commercial version of the NTFS driver for Linux.

almaz.alexandrovich@paragon-software.com
	- Direct e-mail address for feedback and requests on the NTFS3 implementation.

fs/ntfs3/Kconfig

0 → 100644
+46 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config NTFS3_FS
	tristate "NTFS Read-Write file system support"
	select NLS
	help
	  Windows OS native file system (NTFS) support up to NTFS version 3.1.

	  Y or M enables the NTFS3 driver with full features enabled (read,
	  write, journal replaying, sparse/compressed files support).
	  File system type to use on mount is "ntfs3". Module name (M option)
	  is also "ntfs3".

	  Documentation: <file:Documentation/filesystems/ntfs3.rst>

config NTFS3_64BIT_CLUSTER
	bool "64 bits per NTFS clusters"
	depends on NTFS3_FS && 64BIT
	help
	  Windows implementation of ntfs.sys uses 32 bits per clusters.
	  If activated 64 bits per clusters you will be able to use 4k cluster
	  for 16T+ volumes. Windows will not be able to mount such volumes.

	  It is recommended to say N here.

config NTFS3_LZX_XPRESS
	bool "activate support of external compressions lzx/xpress"
	depends on NTFS3_FS
	help
	  In Windows 10 one can use command "compact" to compress any files.
	  4 possible variants of compression are: xpress4k, xpress8k, xpress16k and lzx.
	  If activated you will be able to read such files correctly.

	  It is recommended to say Y here.

config NTFS3_FS_POSIX_ACL
	bool "NTFS POSIX Access Control Lists"
	depends on NTFS3_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.

fs/ntfs3/Makefile

0 → 100644
+36 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
#
# Makefile for the ntfs3 filesystem support.
#

# to check robot warnings
ccflags-y += -Wint-to-pointer-cast \
	$(call cc-option,-Wunused-but-set-variable,-Wunused-const-variable) \
	$(call cc-option,-Wold-style-declaration,-Wout-of-line-declaration)

obj-$(CONFIG_NTFS3_FS) += ntfs3.o

ntfs3-y :=	attrib.o \
		attrlist.o \
		bitfunc.o \
		bitmap.o \
		dir.o \
		fsntfs.o \
		frecord.o \
		file.o \
		fslog.o \
		inode.o \
		index.o \
		lznt.o \
		namei.o \
		record.o \
		run.o \
		super.o \
		upcase.o \
		xattr.o

ntfs3-$(CONFIG_NTFS3_LZX_XPRESS) += $(addprefix lib/,\
		decompress_common.o \
		lzx_decompress.o \
		xpress_decompress.o \
		)
 No newline at end of file