diff options
author | lizhe <lizhe67@huawei.com> | 2020-10-14 14:54:43 +0800 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2020-12-13 21:56:24 +0100 |
commit | cd3ed3c73ac671ff6b0230ccb72b8300292d3643 (patch) | |
tree | 4d7b572a99b64e0440f07170ff75a8509917d1ec /fs/jffs2/super.c | |
parent | 08cd274f9b8283a1da93e2ccab216a336da83525 (diff) | |
download | linux-stable-cd3ed3c73ac671ff6b0230ccb72b8300292d3643.tar.gz linux-stable-cd3ed3c73ac671ff6b0230ccb72b8300292d3643.tar.bz2 linux-stable-cd3ed3c73ac671ff6b0230ccb72b8300292d3643.zip |
jffs2: Allow setting rp_size to zero during remounting
Set rp_size to zero will be ignore during remounting.
The method to identify whether we input a remounting option of
rp_size is to check if the rp_size input is zero. It can not work
well if we pass "rp_size=0".
This patch add a bool variable "set_rp_size" to fix this problem.
Reported-by: Jubin Zhong <zhongjubin@huawei.com>
Signed-off-by: lizhe <lizhe67@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'fs/jffs2/super.c')
-rw-r--r-- | fs/jffs2/super.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index 4fd297bdf0f3..c523adaca79f 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c @@ -88,7 +88,7 @@ static int jffs2_show_options(struct seq_file *s, struct dentry *root) if (opts->override_compr) seq_printf(s, ",compr=%s", jffs2_compr_name(opts->compr)); - if (opts->rp_size) + if (opts->set_rp_size) seq_printf(s, ",rp_size=%u", opts->rp_size / 1024); return 0; @@ -206,6 +206,7 @@ static int jffs2_parse_param(struct fs_context *fc, struct fs_parameter *param) if (opt > c->mtd->size) return invalf(fc, "jffs2: Too large reserve pool specified, max is %llu KB", c->mtd->size / 1024); + c->mount_opts.set_rp_size = true; c->mount_opts.rp_size = opt; break; default: @@ -225,8 +226,10 @@ static inline void jffs2_update_mount_opts(struct fs_context *fc) 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) + if (new_c->mount_opts.set_rp_size) { + c->mount_opts.set_rp_size = new_c->mount_opts.set_rp_size; c->mount_opts.rp_size = new_c->mount_opts.rp_size; + } mutex_unlock(&c->alloc_sem); } |