提交 56ea07b0 编写于 作者: G goprife@gmail.com

fix bugs in debug.c of jffs2

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1941 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 48a170f8
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#define CONFIG_JFFS2_FS_DEBUG 0 /* 1 or 2 */ #define CONFIG_JFFS2_FS_DEBUG 0 /* 1 or 2 */
/* jffs2 gc thread section */ /* jffs2 gc thread section */
#define CYGOPT_FS_JFFS2_GCTHREAD //#define CYGOPT_FS_JFFS2_GCTHREAD
#define CYGNUM_JFFS2_GC_THREAD_PRIORITY 20 #define CYGNUM_JFFS2_GC_THREAD_PRIORITY 20
#define CYGNUM_JFFS2_GS_THREAD_TICKS 20 #define CYGNUM_JFFS2_GS_THREAD_TICKS 20
#define CYGNUM_JFFS2_GC_THREAD_TICKS 20 #define CYGNUM_JFFS2_GC_THREAD_TICKS 20
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/crc32.h> #include <linux/crc32.h>
#include <linux/jffs2.h> #include <linux/jffs2.h>
#include <linux/slab.h>
#include "nodelist.h" #include "nodelist.h"
#include "debug.h" #include "debug.h"
......
...@@ -23,13 +23,15 @@ int jffs2_flash_read(struct jffs2_sb_info * c, cyg_uint32 offset, ...@@ -23,13 +23,15 @@ int jffs2_flash_read(struct jffs2_sb_info * c, cyg_uint32 offset,
size_t * return_size, size_t * return_size,
unsigned char *buffer) unsigned char *buffer)
{ {
cyg_uint32 len;
struct super_block *sb = OFNI_BS_2SFFJ(c); struct super_block *sb = OFNI_BS_2SFFJ(c);
*return_size = rt_mtd_read(RT_MTD_DEVICE(sb->s_dev), offset, buffer, size); len = rt_mtd_read(RT_MTD_DEVICE(sb->s_dev), offset, buffer, size);
if (len != size)
return -EIO;
//rt_kprintf("fread: offset %d, size %d, ret size %d\n", //rt_kprintf("fread: offset %d, size %d, ret size %d\n",
// offset, size, *return_size); // offset, size, *return_size);
* return_size = len;
return ENOERR; return ENOERR;
} }
...@@ -37,13 +39,16 @@ int jffs2_flash_write(struct jffs2_sb_info * c, ...@@ -37,13 +39,16 @@ int jffs2_flash_write(struct jffs2_sb_info * c,
cyg_uint32 offset, const size_t size, cyg_uint32 offset, const size_t size,
size_t * return_size, unsigned char *buffer) size_t * return_size, unsigned char *buffer)
{ {
cyg_uint32 len;
struct super_block *sb = OFNI_BS_2SFFJ(c); struct super_block *sb = OFNI_BS_2SFFJ(c);
*return_size = rt_mtd_write(RT_MTD_DEVICE(sb->s_dev), offset, buffer, size); len = rt_mtd_write(RT_MTD_DEVICE(sb->s_dev), offset, buffer, size);
if (len != size)
rt_kprintf("fwrite: offset %d, size %d, ret size %d\n", return -EIO;
offset, size, *return_size);
//rt_kprintf("fwrite: offset %d, size %d, ret size %d\n",
// offset, size, *return_size);
* return_size = len;
return ENOERR; return ENOERR;
} }
...@@ -53,7 +58,7 @@ int jffs2_flash_erase(struct jffs2_sb_info * c, ...@@ -53,7 +58,7 @@ int jffs2_flash_erase(struct jffs2_sb_info * c,
rt_err_t result; rt_err_t result;
struct super_block *sb = OFNI_BS_2SFFJ(c); struct super_block *sb = OFNI_BS_2SFFJ(c);
rt_kprintf("erase: offset %d\n", jeb->offset); //rt_kprintf("erase: offset %d\n", jeb->offset);
result = rt_mtd_erase_block(RT_MTD_DEVICE(sb->s_dev), jeb->offset); result = rt_mtd_erase_block(RT_MTD_DEVICE(sb->s_dev), jeb->offset);
if (result != RT_EOK) if (result != RT_EOK)
...@@ -107,7 +112,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c, ...@@ -107,7 +112,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c,
memcpy(cbufptr, vecs[j].iov_base, vecs[j].iov_len); memcpy(cbufptr, vecs[j].iov_base, vecs[j].iov_len);
cbufptr += vecs[j].iov_len; cbufptr += vecs[j].iov_len;
} }
rt_kprintf("direct_write: offset %d, size %d\n", to, sizetomalloc); //rt_kprintf("direct_write: offset %d, size %d\n", to, sizetomalloc);
ret = jffs2_flash_write(c, to, sizetomalloc, &thislen, ret = jffs2_flash_write(c, to, sizetomalloc, &thislen,
(unsigned char *) cbuf); (unsigned char *) cbuf);
if (thislen > totvecsize) // in case it was aligned up if (thislen > totvecsize) // in case it was aligned up
...@@ -128,7 +133,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c, ...@@ -128,7 +133,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c,
lentowrite &= ~(sizeof(int) - 1); lentowrite &= ~(sizeof(int) - 1);
memcpy(buf, vecs[i].iov_base, lentowrite); memcpy(buf, vecs[i].iov_base, lentowrite);
rt_kprintf("direct_write: offset %d, size %d\n", to, lentowrite); //rt_kprintf("direct_write: offset %d, size %d\n", to, lentowrite);
ret = jffs2_flash_write(c, to, lentowrite, &thislen, ret = jffs2_flash_write(c, to, lentowrite, &thislen,
(unsigned char *) &buf); (unsigned char *) &buf);
if (thislen > vecs[i].iov_len) if (thislen > vecs[i].iov_len)
...@@ -137,7 +142,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c, ...@@ -137,7 +142,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c,
} }
else else
{ {
rt_kprintf("direct_writev: offset %d, size %d\n", to, vecs[i].iov_len); //rt_kprintf("direct_writev: offset %d, size %d\n", to, vecs[i].iov_len);
ret = jffs2_flash_write(c, to, vecs[i].iov_len, &thislen, ret = jffs2_flash_write(c, to, vecs[i].iov_len, &thislen,
vecs[i].iov_base); vecs[i].iov_base);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册