* [PATCH] ubifs: Add option to create UBI FS version 4 on empty UBI volume
@ 2018-03-11 16:04 Hauke Mehrtens
2018-03-11 19:25 ` Richard Weinberger
0 siblings, 1 reply; 2+ messages in thread
From: Hauke Mehrtens @ 2018-03-11 16:04 UTC (permalink / raw)
To: richard, dedekind1, adrian.hunter; +Cc: linux-mtd, Hauke Mehrtens
Instead of creating an ubifs file system with format version 5 by
default on empty UBI volumes add a compile option to create an older ubi
with file system format version 4 instated. This allows it to be mount
as a volume on kernel versions < 4.10, which does not support format
version 5.
We saw that some people can not access their older data when they
downgraded from kernel 4.14 to kernel 4.9 to prevent this this option
would help.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
fs/ubifs/Kconfig | 13 +++++++++++++
fs/ubifs/sb.c | 6 ++++++
2 files changed, 19 insertions(+)
diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig
index 83a961bf7280..a1426b865726 100644
--- a/fs/ubifs/Kconfig
+++ b/fs/ubifs/Kconfig
@@ -74,3 +74,16 @@ config UBIFS_FS_SECURITY
the extended attribute support in advance.
If you are not using a security module, say N.
+
+config UBIFS_FS_FORMAT4
+ bool "Use file system format version 4 for new file systems"
+ depends on UBIFS_FS
+ help
+ Instead of creating new file systems with the new ubifs file
+ system version 5, use the old format version 4 for implicitly
+ by the driver created file systems on an empty UBI volume. This
+ makes it possible to mount these file systems also with kernel
+ versions before 4.10. The driver will still support file system
+ format version 5 for ubifs file systems created with version 5.
+
+ If you are unsure, say N.
diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index 8c25081a5109..6e8b6cccda6b 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -165,7 +165,9 @@ static int create_default_filesystem(struct ubifs_info *c)
tmp64 = (long long)max_buds * c->leb_size;
if (big_lpt)
sup_flags |= UBIFS_FLG_BIGLPT;
+#ifndef CONFIG_UBIFS_FS_FORMAT4
sup_flags |= UBIFS_FLG_DOUBLE_HASH;
+#endif
sup->ch.node_type = UBIFS_SB_NODE;
sup->key_hash = UBIFS_KEY_HASH_R5;
@@ -181,7 +183,11 @@ static int create_default_filesystem(struct ubifs_info *c)
sup->jhead_cnt = cpu_to_le32(DEFAULT_JHEADS_CNT);
sup->fanout = cpu_to_le32(DEFAULT_FANOUT);
sup->lsave_cnt = cpu_to_le32(c->lsave_cnt);
+#ifdef CONFIG_UBIFS_FS_FORMAT4
+ sup->fmt_version = cpu_to_le32(4);
+#else
sup->fmt_version = cpu_to_le32(UBIFS_FORMAT_VERSION);
+#endif
sup->time_gran = cpu_to_le32(DEFAULT_TIME_GRAN);
if (c->mount_opts.override_compr)
sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ubifs: Add option to create UBI FS version 4 on empty UBI volume
2018-03-11 16:04 [PATCH] ubifs: Add option to create UBI FS version 4 on empty UBI volume Hauke Mehrtens
@ 2018-03-11 19:25 ` Richard Weinberger
0 siblings, 0 replies; 2+ messages in thread
From: Richard Weinberger @ 2018-03-11 19:25 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: dedekind1, adrian.hunter, linux-mtd
Hauke,
Am Sonntag, 11. März 2018, 17:04:51 CET schrieb Hauke Mehrtens:
> Instead of creating an ubifs file system with format version 5 by
> default on empty UBI volumes add a compile option to create an older ubi
> with file system format version 4 instated. This allows it to be mount
> as a volume on kernel versions < 4.10, which does not support format
> version 5.
> We saw that some people can not access their older data when they
> downgraded from kernel 4.14 to kernel 4.9 to prevent this this option
> would help.
I agree, we should address this.
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
> fs/ubifs/Kconfig | 13 +++++++++++++
> fs/ubifs/sb.c | 6 ++++++
> 2 files changed, 19 insertions(+)
>
> diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig
> index 83a961bf7280..a1426b865726 100644
> --- a/fs/ubifs/Kconfig
> +++ b/fs/ubifs/Kconfig
> @@ -74,3 +74,16 @@ config UBIFS_FS_SECURITY
> the extended attribute support in advance.
>
> If you are not using a security module, say N.
> +
> +config UBIFS_FS_FORMAT4
A new config option is IMHO too coarse grained.
Sadly ubifs rejects unknown mount parameters, so having it as mount option is
also not feasible since old kernels will refuse to mount then.
Please make it a module parameter. For example ubifs.default_version.
Thanks,
//richard
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-03-11 19:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-11 16:04 [PATCH] ubifs: Add option to create UBI FS version 4 on empty UBI volume Hauke Mehrtens
2018-03-11 19:25 ` Richard Weinberger
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).