2022-08-10 20:30:38

by Marc Aurèle La France

[permalink] [raw]
Subject: [PATCH} ntfs3: fix [df]mask display in /proc/mounts

ntfs3's dmask and fmask mount options are 16-bit quantities but are displayed
as 1-extended 32-bit values in /proc/mounts. Fix this by circumventing
integer promotion.

This change is not eligible for stable@.

Please Reply-To-All.

Thanks and have a great day.

Marc.

Signed-off-by: Marc Aurèle La France <[email protected]>

diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/fs/ntfs3/super.c devel-5.17.1/fs/ntfs3/super.c
--- linux-5.17.1/fs/ntfs3/super.c 2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/fs/ntfs3/super.c 2022-03-28 07:14:10.799008309 -0600
@@ -518,9 +518,9 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
seq_printf(m, ",gid=%u",
from_kgid_munged(user_ns, opts->fs_gid));
if (opts->fmask)
- seq_printf(m, ",fmask=%04o", ~opts->fs_fmask_inv);
+ seq_printf(m, ",fmask=%04o", opts->fs_fmask_inv ^ 0xffff);
if (opts->dmask)
- seq_printf(m, ",dmask=%04o", ~opts->fs_dmask_inv);
+ seq_printf(m, ",dmask=%04o", opts->fs_dmask_inv ^ 0xffff);
if (opts->nls)
seq_printf(m, ",iocharset=%s", opts->nls->charset);
else


2022-09-30 16:05:23

by Konstantin Komarov

[permalink] [raw]
Subject: Re: [PATCH} ntfs3: fix [df]mask display in /proc/mounts



On 8/10/22 23:28, Marc Aurèle La France wrote:
> ntfs3's dmask and fmask mount options are 16-bit quantities but are displayed
> as 1-extended 32-bit values in /proc/mounts. Fix this by circumventing
> integer promotion.
>
> This change is not eligible for stable@.
>
> Please Reply-To-All.
>
> Thanks and have a great day.
>
> Marc.
>
> Signed-off-by: Marc Aurèle La France <[email protected]>
>
> diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/fs/ntfs3/super.c devel-5.17.1/fs/ntfs3/super.c
> --- linux-5.17.1/fs/ntfs3/super.c 2022-03-28 02:03:22.000000000 -0600
> +++ devel-5.17.1/fs/ntfs3/super.c 2022-03-28 07:14:10.799008309 -0600
> @@ -518,9 +518,9 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
> seq_printf(m, ",gid=%u",
> from_kgid_munged(user_ns, opts->fs_gid));
> if (opts->fmask)
> - seq_printf(m, ",fmask=%04o", ~opts->fs_fmask_inv);
> + seq_printf(m, ",fmask=%04o", opts->fs_fmask_inv ^ 0xffff);
> if (opts->dmask)
> - seq_printf(m, ",dmask=%04o", ~opts->fs_dmask_inv);
> + seq_printf(m, ",dmask=%04o", opts->fs_dmask_inv ^ 0xffff);
> if (opts->nls)
> seq_printf(m, ",iocharset=%s", opts->nls->charset);
> else

Thanks for patch, applied!