diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-11-11 09:16:20 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-11 09:16:20 +0100 |
commit | 45b86a96f17cb2900f291129b0e67287400e45b2 (patch) | |
tree | f7968bf36e3947ee42251f7eebc6ea5f24aca202 /fs/jffs2/compr_lzo.c | |
parent | 072ba49838b42c873c496d72c91bb237914cf3b6 (diff) | |
parent | 4143c5cb36331155a1823af8b3a8c761a59fed71 (diff) |
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent
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, |