diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-11-08 20:23:02 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-08 20:23:02 +0100 |
commit | 895e031707954a9ca26ed4f5f794575313854ed1 (patch) | |
tree | ec7cd5515f346e6f94bc43e63d55ebc8ddf4173d /fs/jffs2/compr_lzo.c | |
parent | 838e8bb71dc0c892bf8f84abd3c709d8fe3a8d3c (diff) | |
parent | a622cf69b806bbb1887913c04e01d0c25b892876 (diff) |
Merge branch 'linus' into x86/cleanups
Diffstat (limited to 'fs/jffs2/compr_lzo.c')
-rw-r--r-- | fs/jffs2/compr_lzo.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/fs/jffs2/compr_lzo.c b/fs/jffs2/compr_lzo.c index 47b045797e4..90cb60d0978 100644 --- a/fs/jffs2/compr_lzo.c +++ b/fs/jffs2/compr_lzo.c @@ -19,7 +19,7 @@ static void *lzo_mem; static void *lzo_compress_buf; -static DEFINE_MUTEX(deflate_mutex); +static DEFINE_MUTEX(deflate_mutex); /* for lzo_mem and lzo_compress_buf */ static void free_workspace(void) { @@ -49,18 +49,21 @@ static int jffs2_lzo_compress(unsigned char *data_in, unsigned char *cpage_out, mutex_lock(&deflate_mutex); ret = lzo1x_1_compress(data_in, *sourcelen, lzo_compress_buf, &compress_size, lzo_mem); - mutex_unlock(&deflate_mutex); - if (ret != LZO_E_OK) - return -1; + goto fail; if (compress_size > *dstlen) - return -1; + goto fail; memcpy(cpage_out, lzo_compress_buf, compress_size); - *dstlen = compress_size; + mutex_unlock(&deflate_mutex); + *dstlen = compress_size; return 0; + + fail: + mutex_unlock(&deflate_mutex); + return -1; } static int jffs2_lzo_decompress(unsigned char *data_in, unsigned char *cpage_out, |