|
|
@@ -1,66 +0,0 @@
|
|
|
-From 93c33e6a7f3b0aef99d02252e6232a3d8b80f2d5 Mon Sep 17 00:00:00 2001
|
|
|
-From: Hauke Mehrtens <[email protected]>
|
|
|
-Date: Sun, 21 Jan 2018 15:47:50 +0100
|
|
|
-Subject: ubifs: Add option to create UBI FS version 4 on empty UBI volume
|
|
|
-
|
|
|
-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 <[email protected]>
|
|
|
----
|
|
|
- fs/ubifs/Kconfig | 13 +++++++++++++
|
|
|
- fs/ubifs/sb.c | 6 ++++++
|
|
|
- 2 files changed, 19 insertions(+)
|
|
|
-
|
|
|
---- a/fs/ubifs/Kconfig
|
|
|
-+++ b/fs/ubifs/Kconfig
|
|
|
-@@ -85,6 +85,19 @@ config UBIFS_FS_SECURITY
|
|
|
-
|
|
|
- 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.
|
|
|
-+
|
|
|
- config UBIFS_FS_AUTHENTICATION
|
|
|
- bool "UBIFS authentication support"
|
|
|
- select KEYS
|
|
|
---- a/fs/ubifs/sb.c
|
|
|
-+++ b/fs/ubifs/sb.c
|
|
|
-@@ -175,7 +175,9 @@ static int create_default_filesystem(str
|
|
|
- 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
|
|
|
-
|
|
|
- if (ubifs_authenticated(c)) {
|
|
|
- sup_flags |= UBIFS_FLG_AUTHENTICATION;
|
|
|
-@@ -201,7 +203,11 @@ static int create_default_filesystem(str
|
|
|
- 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);
|