summaryrefslogtreecommitdiffstats
path: root/fs/ubifs/ubifs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ubifs/ubifs.c')
-rw-r--r--fs/ubifs/ubifs.c29
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,