Commit d62e98ed authored by Gabor Juhos's avatar Gabor Juhos Committed by Richard Weinberger
Browse files

ubifs: Fix default compression selection in ubifs



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: default avatarGabor Juhos <juhosg@openwrt.org>
Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 6554a56f
Loading
Loading
Loading
Loading
+12 −1
Original line number Original line Diff line number Diff line
@@ -63,6 +63,17 @@
/* Default time granularity in nanoseconds */
/* Default time granularity in nanoseconds */
#define DEFAULT_TIME_GRAN 1000000000
#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.
 * create_default_filesystem - format empty UBI volume.
 * @c: UBIFS file-system description object
 * @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)
	if (c->mount_opts.override_compr)
		sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
		sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
	else
	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);
	generate_random_uuid(sup->uuid);