From patchwork Sat Aug 8 15:49:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hauke Mehrtens X-Patchwork-Id: 1342533 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=hauke-m.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=CP2p4akg; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BP6Cl0KSTz9sRK for ; Sun, 9 Aug 2020 01:51:31 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=88SeOsvpR2bjQ1Z18Vx2/84kFLoKJr5JBvOSRgTXv50=; b=CP2p4akgzwUuVNvgwYl7GlaKYt KRuSEInjj+tVDhtpCvJo57AcDMn3kBt6/AK9ZkJwHl9twRDABYCkLmEpS/au0r0dh0lwoKiGX4gDc Dj2FB9kJC5Q4Keu6rnwRhrEJhkO1BGOBGb8u6Lr2THRqPuziDSB8q2UtniLxofJgC2GwtF9u+SeWE tIoGPOmKdvQJov8AwOEzIqcXYdYynCPjJ/jRA8RF3ThREnnHGhwueqjsyrKLidiWwW4b5NnvA2Rqw r2+sf1kKuG/f8M6QdnHFhJBzgGl66rNjfPkMC0b6tb9lmqQuEKYuxciskVdXE7xJ8aCajnI9a2nti PJcvUGcQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k4R6b-0001Ic-7z; Sat, 08 Aug 2020 15:49:57 +0000 Received: from mout-p-103.mailbox.org ([80.241.56.161]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k4R6Y-0001IF-Vf for openwrt-devel@lists.openwrt.org; Sat, 08 Aug 2020 15:49:56 +0000 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4BP69r5dTJzKmWN; Sat, 8 Aug 2020 17:49:52 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter03.heinlein-hosting.de (spamfilter03.heinlein-hosting.de [80.241.56.117]) (amavisd-new, port 10030) with ESMTP id 6nhu8eL9H4id; Sat, 8 Aug 2020 17:49:49 +0200 (CEST) From: Hauke Mehrtens To: openwrt-devel@lists.openwrt.org Subject: [PATCH] kernel: Create UBIFS v5 volume Date: Sat, 8 Aug 2020 17:49:03 +0200 Message-Id: <20200808154903.19764-1-hauke@hauke-m.de> MIME-Version: 1.0 X-MBO-SPAM-Probability: X-Rspamd-Score: -5.68 / 15.00 / 15.00 X-Rspamd-Queue-Id: D7E7617F1 X-Rspamd-UID: 845278 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200808_114955_155933_5EF0193A X-CRM114-Status: GOOD ( 26.18 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [80.241.56.161 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hauke@hauke-m.de Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org In commit 87b35c16adcf ("kernel: ubifs: create use file system format 4 by default") we changed the default UBIFS version used when the kernel creates a new volume from 5 to 4. UBIFS v5 was added in kernel 4.10 and only kernel 4.10 and later can read it. We changed the kernel to create version 4 volumes also on more recent kernel versions to make it possible to downgrade to an OpenWrt version with kernel 4.9, the upgrade still works. This is probably not needed any more and we can remove this patch. Signed-off-by: Hauke Mehrtens --- target/linux/generic/config-4.14 | 1 - target/linux/generic/config-4.19 | 1 - target/linux/generic/config-5.4 | 1 - ...-to-create-UBI-FS-version-4-on-empty.patch | 63 ------------------ ...-to-create-UBI-FS-version-4-on-empty.patch | 63 ------------------ ...-to-create-UBI-FS-version-4-on-empty.patch | 66 ------------------- 6 files changed, 195 deletions(-) delete mode 100644 target/linux/generic/pending-4.14/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch delete mode 100644 target/linux/generic/pending-4.19/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch delete mode 100644 target/linux/generic/pending-5.4/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch diff --git a/target/linux/generic/config-4.14 b/target/linux/generic/config-4.14 index 778eee008bb8..2fa90032dd5d 100644 --- a/target/linux/generic/config-4.14 +++ b/target/linux/generic/config-4.14 @@ -5149,7 +5149,6 @@ 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/config-4.19 b/target/linux/generic/config-4.19 index 977829c86776..7becf21e20ce 100644 --- a/target/linux/generic/config-4.19 +++ b/target/linux/generic/config-4.19 @@ -5423,7 +5423,6 @@ 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_UBIFS_FS_XATTR is not set # CONFIG_UBSAN is not set diff --git a/target/linux/generic/config-5.4 b/target/linux/generic/config-5.4 index 3279aabe64a1..d1c2ffa19cc3 100644 --- a/target/linux/generic/config-5.4 +++ b/target/linux/generic/config-5.4 @@ -5784,7 +5784,6 @@ CONFIG_TTY=y # CONFIG_UBIFS_ATIME_SUPPORT is not set # CONFIG_UBIFS_FS_AUTHENTICATION is not set # CONFIG_UBIFS_FS_ENCRYPTION is not set -CONFIG_UBIFS_FS_FORMAT4=y # CONFIG_UBIFS_FS_SECURITY is not set # CONFIG_UBIFS_FS_XATTR is not set # CONFIG_UBSAN 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 deleted file mode 100644 index 4b413996f2a1..000000000000 --- a/target/linux/generic/pending-4.14/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch +++ /dev/null @@ -1,63 +0,0 @@ -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); diff --git a/target/linux/generic/pending-4.19/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch b/target/linux/generic/pending-4.19/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch deleted file mode 100644 index 02c9b4c0fa7a..000000000000 --- a/target/linux/generic/pending-4.19/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch +++ /dev/null @@ -1,63 +0,0 @@ -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 -@@ -85,3 +85,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); diff --git a/target/linux/generic/pending-5.4/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch b/target/linux/generic/pending-5.4/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch deleted file mode 100644 index e726274ca2a2..000000000000 --- a/target/linux/generic/pending-5.4/553-ubifs-Add-option-to-create-UBI-FS-version-4-on-empty.patch +++ /dev/null @@ -1,66 +0,0 @@ -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 -@@ -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);