ntfs3.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option
@ 2022-10-10 11:27 Daniel Pinto
  2022-10-10 11:30 ` [PATCH v2 1/5] fs/ntfs3: fix hidedotfiles mount option by reversing behaviour Daniel Pinto
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:27 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

Changes v1->v2:
- Add documentation for hidedotfiles mount option.

The current implementation of the hidedotfiles has some problems, namely:
- there is a bug where enabling it actually disables it and vice versa
- it only works when creating files, not when moving or renaming them
- it is not listed in the enabled options list by the mount command
- its name differs from the equivalent hide_dot_files mount option
  used by NTFS-3G, making it incompatible with it for no reason

This series of patches tries to fix those problems.

Daniel Pinto (5):
  fs/ntfs3: fix hidedotfiles mount option by reversing behaviour
  fs/ntfs3: make hidedotfiles mount option work when renaming files
  fs/ntfs3: add hidedotfiles to the list of enabled mount options
  fs/ntfs3: document the hidedotfiles mount option
  fs/ntfs3: rename hidedotfiles mount option to hide_dot_files

 Documentation/filesystems/ntfs3.rst | 6 ++++++
 fs/ntfs3/frecord.c                  | 9 +++++++++
 fs/ntfs3/inode.c                    | 2 +-
 fs/ntfs3/super.c                    | 6 ++++--
 4 files changed, 20 insertions(+), 3 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/5] fs/ntfs3: fix hidedotfiles mount option by reversing behaviour
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
@ 2022-10-10 11:30 ` Daniel Pinto
  2022-10-10 11:32 ` [PATCH v2 2/5] fs/ntfs3: make hidedotfiles mount option work when renaming files Daniel Pinto
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:30 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

Currently, the hidedotfiles mount option is behaving in the reverse
way of what would be expected: enabling it disables setting the
hidden attribute on files or directories with names starting with a
dot and disabling it enables the setting.

Reverse the behaviour of the hidedotfiles mount option so it matches
what is expected.

Signed-off-by: Daniel Pinto <danielpinto52@gmail.com>
---
 fs/ntfs3/super.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 1e2c04e48f98..c6fd2afde172 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -359,7 +359,7 @@ static int ntfs_fs_parse_param(struct fs_context *fc,
 		opts->nohidden = result.negated ? 1 : 0;
 		break;
 	case Opt_hide_dot_files:
-		opts->hide_dot_files = result.negated ? 1 : 0;
+		opts->hide_dot_files = result.negated ? 0 : 1;
 		break;
 	case Opt_acl:
 		if (!result.negated)

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/5] fs/ntfs3: make hidedotfiles mount option work when renaming files
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
  2022-10-10 11:30 ` [PATCH v2 1/5] fs/ntfs3: fix hidedotfiles mount option by reversing behaviour Daniel Pinto
@ 2022-10-10 11:32 ` Daniel Pinto
  2022-10-10 11:34 ` [PATCH v2 3/5] fs/ntfs3: add hidedotfiles to the list of enabled mount options Daniel Pinto
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:32 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

Currently, the hidedotfiles mount option only has an effect when
creating new files. Removing or adding the starting dot when moving
or renaming files does not update the hidden attribute.

Make hidedotfiles also set or uset the hidden attribute when a file
gains or loses its starting dot by being moved or renamed.

Signed-off-by: Daniel Pinto <danielpinto52@gmail.com>
---
 fs/ntfs3/frecord.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
index 70a80f9412f7..41a20d71562a 100644
--- a/fs/ntfs3/frecord.c
+++ b/fs/ntfs3/frecord.c
@@ -3018,6 +3018,15 @@ int ni_add_name(struct ntfs_inode *dir_ni, struct ntfs_inode *ni,
 	struct ATTR_FILE_NAME *de_name = (struct ATTR_FILE_NAME *)(de + 1);
 	u16 de_key_size = le16_to_cpu(de->key_size);
 
+	/* If option "hidedotfiles" then set hidden attribute for dot files. */
+	if (ni->mi.sbi->options->hide_dot_files) {
+		if (de_name->name_len > 0 &&
+		    le16_to_cpu(de_name->name[0]) == '.')
+			ni->std_fa |= FILE_ATTRIBUTE_HIDDEN;
+		else
+			ni->std_fa &= ~FILE_ATTRIBUTE_HIDDEN;
+	}
+
 	mi_get_ref(&ni->mi, &de->ref);
 	mi_get_ref(&dir_ni->mi, &de_name->home);

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/5] fs/ntfs3: add hidedotfiles to the list of enabled mount options
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
  2022-10-10 11:30 ` [PATCH v2 1/5] fs/ntfs3: fix hidedotfiles mount option by reversing behaviour Daniel Pinto
  2022-10-10 11:32 ` [PATCH v2 2/5] fs/ntfs3: make hidedotfiles mount option work when renaming files Daniel Pinto
@ 2022-10-10 11:34 ` Daniel Pinto
  2022-10-10 11:35 ` [PATCH v2 4/5] fs/ntfs3: document the hidedotfiles mount option Daniel Pinto
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:34 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

Currently, the ntfs3 driver does return the hidedotfiles mount
option in the list of enabled mount options. This can confuse
users who may doubt they enabled the option when not seeing in
the list provided by the mount command.

Add hidedotfiles mount option to the list of enabled options
provided by the mount command when it is enabled.

Signed-off-by: Daniel Pinto <danielpinto52@gmail.com>
---
 fs/ntfs3/super.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index c6fd2afde172..d796541e2a67 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -561,6 +561,8 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
 		seq_puts(m, ",showmeta");
 	if (opts->nohidden)
 		seq_puts(m, ",nohidden");
+	if (opts->hide_dot_files)
+		seq_puts(m, ",hidedotfiles");
 	if (opts->force)
 		seq_puts(m, ",force");
 	if (opts->noacsrules)

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/5] fs/ntfs3: document the hidedotfiles mount option
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
                   ` (2 preceding siblings ...)
  2022-10-10 11:34 ` [PATCH v2 3/5] fs/ntfs3: add hidedotfiles to the list of enabled mount options Daniel Pinto
@ 2022-10-10 11:35 ` Daniel Pinto
  2022-10-10 11:37 ` [PATCH v2 5/5] fs/ntfs3: rename hidedotfiles mount option to hide_dot_files Daniel Pinto
  2022-11-12 18:18 ` [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Konstantin Komarov
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:35 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

Add documentation for the hidedotfiles mount option.

Signed-off-by: Daniel Pinto <danielpinto52@gmail.com>
---
 Documentation/filesystems/ntfs3.rst | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/filesystems/ntfs3.rst b/Documentation/filesystems/ntfs3.rst
index d67ccd22c63b..fa03165f2310 100644
--- a/Documentation/filesystems/ntfs3.rst
+++ b/Documentation/filesystems/ntfs3.rst
@@ -75,6 +75,12 @@ this table marked with no it means default is without **no**.
      - Files with the Windows-specific SYSTEM (FILE_ATTRIBUTE_SYSTEM) attribute
        will be marked as system immutable files.
 
+   * - hidedotfiles
+     - Updates the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
+       when creating and moving or renaming files. Files whose names start
+       with a dot will have the HIDDEN attribute set and files whose names
+       do not start with a dot will have it unset.
+
    * - discard
      - Enable support of the TRIM command for improved performance on delete
        operations, which is recommended for use with the solid-state drives

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 5/5] fs/ntfs3: rename hidedotfiles mount option to hide_dot_files
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
                   ` (3 preceding siblings ...)
  2022-10-10 11:35 ` [PATCH v2 4/5] fs/ntfs3: document the hidedotfiles mount option Daniel Pinto
@ 2022-10-10 11:37 ` Daniel Pinto
  2022-11-12 18:18 ` [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Konstantin Komarov
  5 siblings, 0 replies; 7+ messages in thread
From: Daniel Pinto @ 2022-10-10 11:37 UTC (permalink / raw)
  To: Konstantin Komarov, ntfs3, linux-fsdevel, linux-kernel

The hidedotfiles mount option provides the same functionality as
the NTFS-3G hide_dot_files mount option. As such, it should be
named the same for compatibility with NTGS-3G.

Rename the hidedotfiles to hide_dot_files for compatbility with
NTFS-3G.

Signed-off-by: Daniel Pinto <danielpinto52@gmail.com>
---
 Documentation/filesystems/ntfs3.rst | 2 +-
 fs/ntfs3/frecord.c                  | 2 +-
 fs/ntfs3/inode.c                    | 2 +-
 fs/ntfs3/super.c                    | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/filesystems/ntfs3.rst b/Documentation/filesystems/ntfs3.rst
index fa03165f2310..4c6eb9fe9bea 100644
--- a/Documentation/filesystems/ntfs3.rst
+++ b/Documentation/filesystems/ntfs3.rst
@@ -75,7 +75,7 @@ this table marked with no it means default is without **no**.
      - Files with the Windows-specific SYSTEM (FILE_ATTRIBUTE_SYSTEM) attribute
        will be marked as system immutable files.
 
-   * - hidedotfiles
+   * - hide_dot_files
      - Updates the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
        when creating and moving or renaming files. Files whose names start
        with a dot will have the HIDDEN attribute set and files whose names
diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
index 41a20d71562a..552dbc5b80b1 100644
--- a/fs/ntfs3/frecord.c
+++ b/fs/ntfs3/frecord.c
@@ -3018,7 +3018,7 @@ int ni_add_name(struct ntfs_inode *dir_ni, struct ntfs_inode *ni,
 	struct ATTR_FILE_NAME *de_name = (struct ATTR_FILE_NAME *)(de + 1);
 	u16 de_key_size = le16_to_cpu(de->key_size);
 
-	/* If option "hidedotfiles" then set hidden attribute for dot files. */
+	/* If option "hide_dot_files" then set hidden attribute for dot files. */
 	if (ni->mi.sbi->options->hide_dot_files) {
 		if (de_name->name_len > 0 &&
 		    le16_to_cpu(de_name->name[0]) == '.')
diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
index e9cf00d14733..7ce2bb7646db 100644
--- a/fs/ntfs3/inode.c
+++ b/fs/ntfs3/inode.c
@@ -1272,7 +1272,7 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
 		fa = FILE_ATTRIBUTE_ARCHIVE;
 	}
 
-	/* If option "hidedotfiles" then set hidden attribute for dot files. */
+	/* If option "hide_dot_files" then set hidden attribute for dot files. */
 	if (sbi->options->hide_dot_files && name->name[0] == '.')
 		fa |= FILE_ATTRIBUTE_HIDDEN;
 
diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index d796541e2a67..af67756998df 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -268,7 +268,7 @@ static const struct fs_parameter_spec ntfs_fs_parameters[] = {
 	fsparam_flag_no("force",		Opt_force),
 	fsparam_flag_no("sparse",		Opt_sparse),
 	fsparam_flag_no("hidden",		Opt_nohidden),
-	fsparam_flag_no("hidedotfiles",		Opt_hide_dot_files),
+	fsparam_flag_no("hide_dot_files",	Opt_hide_dot_files),
 	fsparam_flag_no("acl",			Opt_acl),
 	fsparam_flag_no("showmeta",		Opt_showmeta),
 	fsparam_flag_no("prealloc",		Opt_prealloc),
@@ -562,7 +562,7 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
 	if (opts->nohidden)
 		seq_puts(m, ",nohidden");
 	if (opts->hide_dot_files)
-		seq_puts(m, ",hidedotfiles");
+		seq_puts(m, ",hide_dot_files");
 	if (opts->force)
 		seq_puts(m, ",force");
 	if (opts->noacsrules)

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option
  2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
                   ` (4 preceding siblings ...)
  2022-10-10 11:37 ` [PATCH v2 5/5] fs/ntfs3: rename hidedotfiles mount option to hide_dot_files Daniel Pinto
@ 2022-11-12 18:18 ` Konstantin Komarov
  5 siblings, 0 replies; 7+ messages in thread
From: Konstantin Komarov @ 2022-11-12 18:18 UTC (permalink / raw)
  To: Daniel Pinto, ntfs3, linux-fsdevel, linux-kernel



On 10/10/22 14:27, Daniel Pinto wrote:
> Changes v1->v2:
> - Add documentation for hidedotfiles mount option.
> 
> The current implementation of the hidedotfiles has some problems, namely:
> - there is a bug where enabling it actually disables it and vice versa
> - it only works when creating files, not when moving or renaming them
> - it is not listed in the enabled options list by the mount command
> - its name differs from the equivalent hide_dot_files mount option
>    used by NTFS-3G, making it incompatible with it for no reason
> 
> This series of patches tries to fix those problems.
> 
> Daniel Pinto (5):
>    fs/ntfs3: fix hidedotfiles mount option by reversing behaviour
>    fs/ntfs3: make hidedotfiles mount option work when renaming files
>    fs/ntfs3: add hidedotfiles to the list of enabled mount options
>    fs/ntfs3: document the hidedotfiles mount option
>    fs/ntfs3: rename hidedotfiles mount option to hide_dot_files
> 
>   Documentation/filesystems/ntfs3.rst | 6 ++++++
>   fs/ntfs3/frecord.c                  | 9 +++++++++
>   fs/ntfs3/inode.c                    | 2 +-
>   fs/ntfs3/super.c                    | 6 ++++--
>   4 files changed, 20 insertions(+), 3 deletions(-)

Good catch with differences between NTFS-3G and ntfs3.
Applied, thanks!

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-11-12 18:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-10 11:27 [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Daniel Pinto
2022-10-10 11:30 ` [PATCH v2 1/5] fs/ntfs3: fix hidedotfiles mount option by reversing behaviour Daniel Pinto
2022-10-10 11:32 ` [PATCH v2 2/5] fs/ntfs3: make hidedotfiles mount option work when renaming files Daniel Pinto
2022-10-10 11:34 ` [PATCH v2 3/5] fs/ntfs3: add hidedotfiles to the list of enabled mount options Daniel Pinto
2022-10-10 11:35 ` [PATCH v2 4/5] fs/ntfs3: document the hidedotfiles mount option Daniel Pinto
2022-10-10 11:37 ` [PATCH v2 5/5] fs/ntfs3: rename hidedotfiles mount option to hide_dot_files Daniel Pinto
2022-11-12 18:18 ` [PATCH v2 0/5] fs/ntfs3: Fix and rename hidedotfiles mount option Konstantin Komarov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).