diff mbox series

ubifs: fix default compression selection in ubifs

Message ID 20181209171213.26264-1-hauke@hauke-m.de
State Accepted
Headers show
Series ubifs: fix default compression selection in ubifs | expand

Commit Message

Hauke Mehrtens Dec. 9, 2018, 5:12 p.m. UTC
From: Gabor Juhos <juhosg@openwrt.org>

When ubifs is build without the LZO compressor and no compressor is
given the creation of the default file system will fail. before
selection the LZO compressor check if it is present and if not fall back
to the zlib or none.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 fs/ubifs/sb.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Richard Weinberger Dec. 13, 2018, 9 p.m. UTC | #1
Am Sonntag, 9. Dezember 2018, 18:12:13 CET schrieb Hauke Mehrtens:
> From: Gabor Juhos <juhosg@openwrt.org>
> 
> When ubifs is build without the LZO compressor and no compressor is
> given the creation of the default file system will fail. before
> selection the LZO compressor check if it is present and if not fall back
> to the zlib or none.
> 
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

Thanks for addressing this!

Thanks,
//richard
diff mbox series

Patch

diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index 75a69dd26d6e..3da90c951c23 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -63,6 +63,17 @@ 
 /* Default time granularity in nanoseconds */
 #define DEFAULT_TIME_GRAN 1000000000
 
+static int get_default_compressor(struct ubifs_info *c)
+{
+	if (ubifs_compr_present(c, UBIFS_COMPR_LZO))
+		return UBIFS_COMPR_LZO;
+
+	if (ubifs_compr_present(c, UBIFS_COMPR_ZLIB))
+		return UBIFS_COMPR_ZLIB;
+
+	return UBIFS_COMPR_NONE;
+}
+
 /**
  * create_default_filesystem - format empty UBI volume.
  * @c: UBIFS file-system description object
@@ -207,7 +218,7 @@  static int create_default_filesystem(struct ubifs_info *c)
 	if (c->mount_opts.override_compr)
 		sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
 	else
-		sup->default_compr = cpu_to_le16(UBIFS_COMPR_LZO);
+		sup->default_compr = cpu_to_le16(get_default_compressor(c));
 
 	generate_random_uuid(sup->uuid);