--- zzzz-none-000/linux-4.4.271/fs/ubifs/compress.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/fs/ubifs/compress.c 2023-04-19 10:22:30.000000000 +0000 @@ -71,6 +71,24 @@ }; #endif +#ifdef CONFIG_UBIFS_FS_XZ +static DEFINE_MUTEX(xz_enc_mutex); +static DEFINE_MUTEX(xz_dec_mutex); + +static struct ubifs_compressor xz_compr = { + .compr_type = UBIFS_COMPR_XZ, + .comp_mutex = &xz_enc_mutex, + .decomp_mutex = &xz_dec_mutex, + .name = "xz", + .capi_name = "xz", +}; +#else +static struct ubifs_compressor xz_compr = { + .compr_type = UBIFS_COMPR_XZ, + .name = "xz", +}; +#endif + /* All UBIFS compressors */ struct ubifs_compressor *ubifs_compressors[UBIFS_COMPR_TYPES_CNT]; @@ -232,9 +250,15 @@ if (err) goto out_lzo; + err = compr_init(&xz_compr); + if (err) + goto out_zlib; + ubifs_compressors[UBIFS_COMPR_NONE] = &none_compr; return 0; +out_zlib: + compr_exit(&zlib_compr); out_lzo: compr_exit(&lzo_compr); return err; @@ -247,4 +271,5 @@ { compr_exit(&lzo_compr); compr_exit(&zlib_compr); + compr_exit(&xz_compr); }