diff --git a/target/linux/generic/config-4.14 b/target/linux/generic/config-4.14 index 569a6ee144..f7d9ccae76 100644 --- a/target/linux/generic/config-4.14 +++ b/target/linux/generic/config-4.14 @@ -4982,6 +4982,7 @@ CONFIG_TTY=y # CONFIG_UACCESS_WITH_MEMCPY is not set # CONFIG_UBIFS_ATIME_SUPPORT is not set # CONFIG_UBIFS_FS_ENCRYPTION is not set +CONFIG_UBIFS_FS_FORMAT4=y # CONFIG_UBIFS_FS_SECURITY is not set # CONFIG_UBSAN is not set # CONFIG_UCB1400_CORE is not set diff --git a/target/linux/generic/pending-4.14/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch b/target/linux/generic/pending-4.14/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch new file mode 100644 index 0000000000..4b413996f2 --- /dev/null +++ b/target/linux/generic/pending-4.14/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch @@ -0,0 +1,63 @@ +From 93c33e6a7f3b0aef99d02252e6232a3d8b80f2d5 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +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 +--- + fs/ubifs/Kconfig | 13 +++++++++++++ + fs/ubifs/sb.c | 6 ++++++ + 2 files changed, 19 insertions(+) + +--- 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. +--- a/fs/ubifs/sb.c ++++ b/fs/ubifs/sb.c +@@ -176,7 +176,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 + + sup->ch.node_type = UBIFS_SB_NODE; + sup->key_hash = UBIFS_KEY_HASH_R5; +@@ -192,7 +194,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);