lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 6 Nov 2020 10:30:02 +0800
From:   Zhe Li <lizhe67@...wei.com>
To:     <linux-mtd@...ts.infradead.org>, <lizhe67@...wei.com>,
        <dwmw2@...radead.org>, <richard@....at>
CC:     <chenjie6@...wei.com>, <linux-kernel@...r.kernel.org>,
        <qiuxi1@...wei.com>, <wangfangpeng1@...wei.com>,
        <zhongjubin@...wei.com>
Subject: Re: [PATCH 1/2] jffs2: fix ignoring mounting options problem during remounting

Maintainer ping?

	Zhe

On Tue, 13 Oct 2020 15:22:37 +0800, Zhe Li wrote:
>
>The jffs2 mount options will be ignored when remounting jffs2.
>It can be easily reproduced with the steps listed below.
>1. mount -t jffs2 -o compr=none /dev/mtdblockx /mnt
>2. mount -o remount compr=zlib /mnt
>
>Since ec10a24f10c8, the option parsing happens before fill_super and
>then pass fc, which contains the options parsing results, to function
>jffs2_reconfigure during remounting. But function jffs2_reconfigure do
>not update c->mount_opts.
>
>This patch add a function jffs2_update_mount_opts to fix this problem.
>
>By the way, I notice that tmpfs use the same way to update remounting
>options. If it is necessary to unify them?
>
>Signed-off-by: lizhe <lizhe67@...wei.com>
>---
> fs/jffs2/super.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
>diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
>index 05d7878dfad1..4fd297bdf0f3 100644
>--- a/fs/jffs2/super.c
>+++ b/fs/jffs2/super.c
>@@ -215,11 +215,28 @@ static int jffs2_parse_param(struct fs_context *fc, struct fs_parameter *param)
> 	return 0;
> }
> 
>+static inline void jffs2_update_mount_opts(struct fs_context *fc)
>+{
>+	struct jffs2_sb_info *new_c = fc->s_fs_info;
>+	struct jffs2_sb_info *c = JFFS2_SB_INFO(fc->root->d_sb);
>+
>+	mutex_lock(&c->alloc_sem);
>+	if (new_c->mount_opts.override_compr) {
>+		c->mount_opts.override_compr = new_c->mount_opts.override_compr;
>+		c->mount_opts.compr = new_c->mount_opts.compr;
>+	}
>+	if (new_c->mount_opts.rp_size)
>+		c->mount_opts.rp_size = new_c->mount_opts.rp_size;
>+	mutex_unlock(&c->alloc_sem);
>+}
>+
> static int jffs2_reconfigure(struct fs_context *fc)
> {
> 	struct super_block *sb = fc->root->d_sb;
> 
> 	sync_filesystem(sb);
>+	jffs2_update_mount_opts(fc);
>+
> 	return jffs2_do_remount_fs(sb, fc);
> }
> 
>-- 
>2.12.3
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ