diff options
Diffstat (limited to 'fs/ubifs/ubifs.c')
-rw-r--r-- | fs/ubifs/ubifs.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 88a4340a38..ad288f4daa 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -46,7 +46,14 @@ static ZSTD_DCtx *ubifs_zstd_cctx; static int gzip_decompress(const unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len) { - return deflate_decompress(&ubifs_zlib_stream, in, in_len, out, out_len); + unsigned int olen; + int ret; + + ret = deflate_decompress(&ubifs_zlib_stream, in, in_len, out, &olen); + + *out_len = olen; + + return ret; } #endif @@ -125,7 +132,8 @@ static inline struct crypto_comp i++; continue; } - if (strncmp(alg_name, comp->capi_name, strlen(alg_name)) == 0) { + if (comp->capi_name && + strncmp(alg_name, comp->capi_name, strlen(alg_name)) == 0) { ptr->compressor = i; return ptr; } @@ -332,7 +340,7 @@ struct ubifs_file { struct ubifs_data_node *dn; }; -static int ubifs_open(struct device_d *dev, FILE *file, const char *filename) +static int ubifs_open(struct device *dev, FILE *file, const char *filename) { struct inode *inode = file->f_inode; struct ubifs_file *uf; @@ -350,7 +358,7 @@ static int ubifs_open(struct device_d *dev, FILE *file, const char *filename) return 0; } -static int ubifs_close(struct device_d *dev, FILE *f) +static int ubifs_close(struct device *dev, FILE *f) { struct ubifs_file *uf = f->priv; @@ -376,7 +384,7 @@ static int ubifs_get_block(struct ubifs_file *uf, unsigned int pos) return 0; } -static int ubifs_read(struct device_d *_dev, FILE *f, void *buf, size_t insize) +static int ubifs_read(struct device *_dev, FILE *f, void *buf, size_t insize) { struct ubifs_file *uf = f->priv; unsigned int pos = f->pos; @@ -423,7 +431,8 @@ static int ubifs_read(struct device_d *_dev, FILE *f, void *buf, size_t insize) return insize; } -static void ubifs_set_rootarg(struct ubifs_priv *priv, struct fs_device_d *fsdev) +static void ubifs_set_rootarg(struct ubifs_priv *priv, + struct fs_device *fsdev) { struct ubi_volume_info vi = {}; struct ubi_device_info di = {}; @@ -443,9 +452,9 @@ static void ubifs_set_rootarg(struct ubifs_priv *priv, struct fs_device_d *fsdev free(str); } -static int ubifs_probe(struct device_d *dev) +static int ubifs_probe(struct device *dev) { - struct fs_device_d *fsdev = dev_to_fs_device(dev); + struct fs_device *fsdev = dev_to_fs_device(dev); struct ubifs_priv *priv = xzalloc(sizeof(struct ubifs_priv)); int ret; @@ -480,7 +489,7 @@ err_free: return ret; } -static void ubifs_remove(struct device_d *dev) +static void ubifs_remove(struct device *dev) { struct ubifs_priv *priv = dev->priv; struct super_block *sb = priv->sb; @@ -494,7 +503,7 @@ static void ubifs_remove(struct device_d *dev) free(priv); } -static struct fs_driver_d ubifs_driver = { +static struct fs_driver ubifs_driver = { .open = ubifs_open, .close = ubifs_close, .read = ubifs_read, |