Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1339399pxb; Fri, 6 Nov 2020 07:14:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJy3rlhqEIpooij5MDIjHWplm/cr2p3QGbzN7a02HLR2v+NBwRKNxcek/EtdHWBZHSE83Oo9 X-Received: by 2002:a17:906:cb2:: with SMTP id k18mr2590192ejh.71.1604675699689; Fri, 06 Nov 2020 07:14:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604675699; cv=none; d=google.com; s=arc-20160816; b=mC4nchFkrQwtJfNzjrvS/KbvVHWvaTJUz7pDDikW6rRG3bIqlsn1T/4M8AvKIQzUwV BLXJPU7MWO7p662SrTJw8uz0S5HjBPnpGSX13cA8CkZM7GHKrSsXAZMGGC4JSdeJ92x/ jd61L7li8WIny0pp9FjM5HvRIDNWKklS7w+Nm4GafWCPJSd0rDeLo/w77dQ97cSnCOiZ pnjtHALhXrip9qpX0CXteNUZMl9uKEbfzmTkjVR8QT9e/+xOOZLqx8XEymWAIoSkgOzN OtBfIOLdK7TLY4HHE8HpTHed6K+fjk1K1dQ9acqDoTJhRv+R+6Ixm9niFgp1muqwuJDb FXJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ma6MsMJGuJw6ig2bW4IxmNmL7VJJhNVKJkixd3zxgBI=; b=aGyzyVeanhzu+HkK5lN+qJO1gpVEFEW2T9MkhYIehXuiyrkz9M5xHY8W3wCVExwSyb LDBW/6sVlWE/C8rnH5D+SdjDM5CqtEKyltVs+2O8hhyiiF1QGu5135FRlP8yCxhqELwd XbAxB22np1kTeg6lDg/OaSr1v6jquEsbKCCpmyK9Q3XIeBwFaf+XEHbBTsI0VQWLzso1 8k2F+cmsbWpSeLrfUt/WHyuOemHES7lrUys10RtLqdM/RzUjqRnfDxPd+8eWeLzDcUB2 gLDzlT99gqGCQZk3LswCJmNU91R26IukStbvthCcUiCXWd1GEILCr9h/1OdBnJ0QsR5p VtBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=bk7ID3ga; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=paragon-software.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f14si1323216edj.34.2020.11.06.07.14.36; Fri, 06 Nov 2020 07:14:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=bk7ID3ga; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=paragon-software.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727770AbgKFPMX (ORCPT + 99 others); Fri, 6 Nov 2020 10:12:23 -0500 Received: from relaydlg-01.paragon-software.com ([81.5.88.159]:48997 "EHLO relaydlg-01.paragon-software.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727561AbgKFPLU (ORCPT ); Fri, 6 Nov 2020 10:11:20 -0500 Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relaydlg-01.paragon-software.com (Postfix) with ESMTPS id 6BCE1822F0; Fri, 6 Nov 2020 18:11:17 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1604675477; bh=ma6MsMJGuJw6ig2bW4IxmNmL7VJJhNVKJkixd3zxgBI=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=bk7ID3gaFjZemU2AC5xRDgXciXMUtmGoWFLk2MwZljWMsQwLdXRbkxdjmqtQblCkp ojsheSxr8Vb4GmyUz8cVcCzKnVpGEKpTOpvvsqiHNjss0Ofp5Ra4KCQ6oWDDZ/KLl8 WTWTivtZIFTEt4cWSEK//FcvZK68RwfoO/ZmKCfE= Received: from fsd-lkpg.ufsd.paragon-software.com (172.30.114.105) by vdlg-exch-02.paragon-software.com (172.30.1.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1847.3; Fri, 6 Nov 2020 18:11:16 +0300 From: Konstantin Komarov To: CC: , , , , , , , , , , , , , , , Konstantin Komarov Subject: [PATCH v12 08/10] fs/ntfs3: Add Kconfig, Makefile and doc Date: Fri, 6 Nov 2020 18:09:07 +0300 Message-ID: <20201106150909.1779040-9-almaz.alexandrovich@paragon-software.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20201106150909.1779040-1-almaz.alexandrovich@paragon-software.com> References: <20201106150909.1779040-1-almaz.alexandrovich@paragon-software.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.30.114.105] X-ClientProxiedBy: vdlg-exch-02.paragon-software.com (172.30.1.105) To vdlg-exch-02.paragon-software.com (172.30.1.105) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This adds Kconfig, Makefile and doc Signed-off-by: Konstantin Komarov --- Documentation/filesystems/ntfs3.rst | 112 ++++++++++++++++++++++++++++ fs/ntfs3/Kconfig | 23 ++++++ fs/ntfs3/Makefile | 11 +++ 3 files changed, 146 insertions(+) create mode 100644 Documentation/filesystems/ntfs3.rst create mode 100644 fs/ntfs3/Kconfig create mode 100644 fs/ntfs3/Makefile diff --git a/Documentation/filesystems/ntfs3.rst b/Documentation/filesystems/ntfs3.rst new file mode 100644 index 000000000000..90b2125d1af2 --- /dev/null +++ b/Documentation/filesystems/ntfs3.rst @@ -0,0 +1,112 @@ +.. 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' + +nls_alt=name This option extends "nls". It will be used to translate + path string to Unicode if primary nls failed. + Examples: + 'nls_alt=cp1251' + +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. + diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig new file mode 100644 index 000000000000..92a9c68008c8 --- /dev/null +++ b/fs/ntfs3/Kconfig @@ -0,0 +1,23 @@ +# 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: + +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. diff --git a/fs/ntfs3/Makefile b/fs/ntfs3/Makefile new file mode 100644 index 000000000000..d99dd1af43aa --- /dev/null +++ b/fs/ntfs3/Makefile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for the ntfs3 filesystem support. +# + +obj-$(CONFIG_NTFS3_FS) += ntfs3.o + +ntfs3-y := bitfunc.o bitmap.o inode.o fsntfs.o frecord.o \ + index.o attrlist.o record.o attrib.o run.o xattr.o\ + upcase.o super.o file.o dir.o namei.o lznt.o\ + fslog.o -- 2.25.4