diff options
author | Massimo Cirillo <maxcir@gmail.com> | 2009-08-27 10:44:09 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-09-03 15:01:34 +0100 |
commit | bc8cec0dff072f1a45ce7f6b2c5234bb3411ac51 (patch) | |
tree | c0794baebf16ecbbedbe79daaba80281fdad1e03 /fs/jffs2/wbuf.c | |
parent | 16f05c2b68520f94e365f9d347a7076f4ff00ad5 (diff) | |
download | blackbird-op-linux-bc8cec0dff072f1a45ce7f6b2c5234bb3411ac51.tar.gz blackbird-op-linux-bc8cec0dff072f1a45ce7f6b2c5234bb3411ac51.zip |
JFFS2: add missing verify buffer allocation/deallocation
The function jffs2_nor_wbuf_flash_setup() doesn't allocate the verify buffer
if CONFIG_JFFS2_FS_WBUF_VERIFY is defined, so causing a kernel panic when
that macro is enabled and the verify function is called. Similarly the
jffs2_nor_wbuf_flash_cleanup() must free the buffer if
CONFIG_JFFS2_FS_WBUF_VERIFY is enabled.
The following patch fixes the problem.
The following patch applies to 2.6.30 kernel.
Signed-off-by: Massimo Cirillo <maxcir@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: stable@kernel.org
Diffstat (limited to 'fs/jffs2/wbuf.c')
-rw-r--r-- | fs/jffs2/wbuf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c index d9a721e6db70..5ef7bac265e5 100644 --- a/fs/jffs2/wbuf.c +++ b/fs/jffs2/wbuf.c @@ -1268,10 +1268,20 @@ int jffs2_nor_wbuf_flash_setup(struct jffs2_sb_info *c) { if (!c->wbuf) return -ENOMEM; +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY + c->wbuf_verify = kmalloc(c->wbuf_pagesize, GFP_KERNEL); + if (!c->wbuf_verify) { + kfree(c->wbuf); + return -ENOMEM; + } +#endif return 0; } void jffs2_nor_wbuf_flash_cleanup(struct jffs2_sb_info *c) { +#ifdef CONFIG_JFFS2_FS_WBUF_VERIFY + kfree(c->wbuf_verify); +#endif kfree(c->wbuf); } |