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: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
Родитель
6554a56f35
Коммит
d62e98ed1e
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче