提交 9b88f473 编写于 作者: E Estelle Hammache 提交者: Thomas Gleixner

[JFFS2] Code cleanup

Code beautification and block filing correction for optimization.
Signed-off-by: NEstelle Hammache <estelle.hammache@st.com>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 6170b434
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* For licensing information, see the file 'LICENCE' in this directory. * For licensing information, see the file 'LICENCE' in this directory.
* *
* $Id: nodemgmt.c,v 1.116 2005/01/24 21:30:22 hammache Exp $ * $Id: nodemgmt.c,v 1.117 2005/01/25 20:11:11 hammache Exp $
* *
*/ */
...@@ -310,8 +310,8 @@ int jffs2_add_physical_node_ref(struct jffs2_sb_info *c, struct jffs2_raw_node_r ...@@ -310,8 +310,8 @@ int jffs2_add_physical_node_ref(struct jffs2_sb_info *c, struct jffs2_raw_node_r
#if 1 #if 1
/* we could get some obsolete nodes after nextblock was refiled /* we could get some obsolete nodes after nextblock was refiled
in wbuf.c */ in wbuf.c */
if ( (c->nextblock || !ref_obsolete(new)) if ((c->nextblock || !ref_obsolete(new))
&&(jeb != c->nextblock || (ref_offset(new)) != jeb->offset + (c->sector_size - jeb->free_size))) { &&(jeb != c->nextblock || ref_offset(new) != jeb->offset + (c->sector_size - jeb->free_size))) {
printk(KERN_WARNING "argh. node added in wrong place\n"); printk(KERN_WARNING "argh. node added in wrong place\n");
jffs2_free_raw_node_ref(new); jffs2_free_raw_node_ref(new);
return -EINVAL; return -EINVAL;
...@@ -335,7 +335,7 @@ int jffs2_add_physical_node_ref(struct jffs2_sb_info *c, struct jffs2_raw_node_r ...@@ -335,7 +335,7 @@ int jffs2_add_physical_node_ref(struct jffs2_sb_info *c, struct jffs2_raw_node_r
c->used_size += len; c->used_size += len;
} }
if (!jeb->free_size && !jeb->dirty_size && !jeb->wasted_size) { if (!jeb->free_size && !jeb->dirty_size && !ISDIRTY(jeb->wasted_size)) {
/* If it lives on the dirty_list, jffs2_reserve_space will put it there */ /* If it lives on the dirty_list, jffs2_reserve_space will put it there */
D1(printk(KERN_DEBUG "Adding full erase block at 0x%08x to clean_list (free 0x%08x, dirty 0x%08x, used 0x%08x\n", D1(printk(KERN_DEBUG "Adding full erase block at 0x%08x to clean_list (free 0x%08x, dirty 0x%08x, used 0x%08x\n",
jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size)); jeb->offset, jeb->free_size, jeb->dirty_size, jeb->used_size));
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* For licensing information, see the file 'LICENCE' in this directory. * For licensing information, see the file 'LICENCE' in this directory.
* *
* $Id: wbuf.c,v 1.83 2005/01/24 21:24:15 hammache Exp $ * $Id: wbuf.c,v 1.84 2005/01/25 20:11:11 hammache Exp $
* *
*/ */
...@@ -147,8 +147,7 @@ static void jffs2_block_refile(struct jffs2_sb_info *c, struct jffs2_eraseblock ...@@ -147,8 +147,7 @@ static void jffs2_block_refile(struct jffs2_sb_info *c, struct jffs2_eraseblock
D1(printk("Refiling block at %08x to bad_used_list\n", jeb->offset)); D1(printk("Refiling block at %08x to bad_used_list\n", jeb->offset));
list_add(&jeb->list, &c->bad_used_list); list_add(&jeb->list, &c->bad_used_list);
} else { } else {
if (allow_empty == REFILE_NOTEMPTY) BUG_ON(allow_empty == REFILE_NOTEMPTY);
BUG();
/* It has to have had some nodes or we couldn't be here */ /* It has to have had some nodes or we couldn't be here */
D1(printk("Refiling block at %08x to erase_pending_list\n", jeb->offset)); D1(printk("Refiling block at %08x to erase_pending_list\n", jeb->offset));
list_add(&jeb->list, &c->erase_pending_list); list_add(&jeb->list, &c->erase_pending_list);
...@@ -268,16 +267,15 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c) ...@@ -268,16 +267,15 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c)
ret = jffs2_reserve_space_gc(c, end-start, &ofs, &len); ret = jffs2_reserve_space_gc(c, end-start, &ofs, &len);
if (ret) { if (ret) {
printk(KERN_WARNING "Failed to allocate space for wbuf recovery. Data loss ensues.\n"); printk(KERN_WARNING "Failed to allocate space for wbuf recovery. Data loss ensues.\n");
if (buf) kfree(buf);
kfree(buf);
return; return;
} }
if (end-start >= c->wbuf_pagesize) { if (end-start >= c->wbuf_pagesize) {
/* Need to do another write immediately, but it's possible /* Need to do another write immediately, but it's possible
that this is just because the wbuf itself is completely that this is just because the wbuf itself is completely
full, and there's nothing earlier read back from the full, and there's nothing earlier read back from the
flash. Hence 'buf' isn't necessarily what we're writing flash. Hence 'buf' isn't necessarily what we're writing
from. */ from. */
unsigned char *rewrite_buf = buf?:c->wbuf; unsigned char *rewrite_buf = buf?:c->wbuf;
uint32_t towrite = (end-start) - ((end-start)%c->wbuf_pagesize); uint32_t towrite = (end-start) - ((end-start)%c->wbuf_pagesize);
...@@ -303,8 +301,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c) ...@@ -303,8 +301,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c)
if (ret || retlen != towrite) { if (ret || retlen != towrite) {
/* Argh. We tried. Really we did. */ /* Argh. We tried. Really we did. */
printk(KERN_CRIT "Recovery of wbuf failed due to a second write error\n"); printk(KERN_CRIT "Recovery of wbuf failed due to a second write error\n");
if (buf) kfree(buf);
kfree(buf);
if (retlen) { if (retlen) {
struct jffs2_raw_node_ref *raw2; struct jffs2_raw_node_ref *raw2;
...@@ -555,9 +552,7 @@ int jffs2_flush_wbuf_gc(struct jffs2_sb_info *c, uint32_t ino) ...@@ -555,9 +552,7 @@ int jffs2_flush_wbuf_gc(struct jffs2_sb_info *c, uint32_t ino)
/* retry flushing wbuf in case jffs2_wbuf_recover /* retry flushing wbuf in case jffs2_wbuf_recover
left some data in the wbuf */ left some data in the wbuf */
if (ret) if (ret)
{
ret = __jffs2_flush_wbuf(c, PAD_ACCOUNTING); ret = __jffs2_flush_wbuf(c, PAD_ACCOUNTING);
}
up_write(&c->wbuf_sem); up_write(&c->wbuf_sem);
} else while (old_wbuf_len && } else while (old_wbuf_len &&
old_wbuf_ofs == c->wbuf_ofs) { old_wbuf_ofs == c->wbuf_ofs) {
...@@ -575,9 +570,7 @@ int jffs2_flush_wbuf_gc(struct jffs2_sb_info *c, uint32_t ino) ...@@ -575,9 +570,7 @@ int jffs2_flush_wbuf_gc(struct jffs2_sb_info *c, uint32_t ino)
/* retry flushing wbuf in case jffs2_wbuf_recover /* retry flushing wbuf in case jffs2_wbuf_recover
left some data in the wbuf */ left some data in the wbuf */
if (ret) if (ret)
{
ret = __jffs2_flush_wbuf(c, PAD_ACCOUNTING); ret = __jffs2_flush_wbuf(c, PAD_ACCOUNTING);
}
up_write(&c->wbuf_sem); up_write(&c->wbuf_sem);
break; break;
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* For licensing information, see the file 'LICENCE' in this directory. * For licensing information, see the file 'LICENCE' in this directory.
* *
* $Id: write.c,v 1.88 2005/01/24 21:13:39 hammache Exp $ * $Id: write.c,v 1.90 2005/01/28 18:53:01 hammache Exp $
* *
*/ */
...@@ -136,19 +136,13 @@ struct jffs2_full_dnode *jffs2_write_dnode(struct jffs2_sb_info *c, struct jffs2 ...@@ -136,19 +136,13 @@ struct jffs2_full_dnode *jffs2_write_dnode(struct jffs2_sb_info *c, struct jffs2
raw->__totlen = PAD(sizeof(*ri)+datalen); raw->__totlen = PAD(sizeof(*ri)+datalen);
raw->next_phys = NULL; raw->next_phys = NULL;
if ((alloc_mode!=ALLOC_GC) && (je32_to_cpu(ri->version) < f->highest_version)) if ((alloc_mode!=ALLOC_GC) && (je32_to_cpu(ri->version) < f->highest_version)) {
{ BUG_ON(!retried);
if (! retried) D1(printk(KERN_DEBUG "jffs2_write_dnode : dnode_version %d, "
{ "highest version %d -> updating dnode\n",
BUG(); je32_to_cpu(ri->version), f->highest_version));
} ri->version = cpu_to_je32(++f->highest_version);
else ri->node_crc = cpu_to_je32(crc32(0, ri, sizeof(*ri)-8));
{
D1(printk(KERN_DEBUG "jffs2_write_dnode : dnode_version %d, highest version %d -> updating dnode\n",
je32_to_cpu(ri->version), f->highest_version));
ri->version = cpu_to_je32(++f->highest_version);
ri->node_crc = cpu_to_je32(crc32(0, ri, sizeof(*ri)-8));
}
} }
ret = jffs2_flash_writev(c, vecs, cnt, flash_ofs, &retlen, ret = jffs2_flash_writev(c, vecs, cnt, flash_ofs, &retlen,
...@@ -295,20 +289,14 @@ struct jffs2_full_dirent *jffs2_write_dirent(struct jffs2_sb_info *c, struct jff ...@@ -295,20 +289,14 @@ struct jffs2_full_dirent *jffs2_write_dirent(struct jffs2_sb_info *c, struct jff
raw->__totlen = PAD(sizeof(*rd)+namelen); raw->__totlen = PAD(sizeof(*rd)+namelen);
raw->next_phys = NULL; raw->next_phys = NULL;
if ((alloc_mode!=ALLOC_GC) && (je32_to_cpu(rd->version) < f->highest_version)) if ((alloc_mode!=ALLOC_GC) && (je32_to_cpu(rd->version) < f->highest_version)) {
{ BUG_ON(!retried);
if (! retried) D1(printk(KERN_DEBUG "jffs2_write_dirent : dirent_version %d, "
{ "highest version %d -> updating dirent\n",
BUG(); je32_to_cpu(rd->version), f->highest_version));
} rd->version = cpu_to_je32(++f->highest_version);
else fd->version = je32_to_cpu(rd->version);
{ rd->node_crc = cpu_to_je32(crc32(0, rd, sizeof(*rd)-8));
D1(printk(KERN_DEBUG "jffs2_write_dirent : dirent_version %d, highest version %d -> updating dirent\n",
je32_to_cpu(rd->version), f->highest_version));
rd->version = cpu_to_je32(++f->highest_version);
fd->version = je32_to_cpu(rd->version);
rd->node_crc = cpu_to_je32(crc32(0, rd, sizeof(*rd)-8));
}
} }
ret = jffs2_flash_writev(c, vecs, 2, flash_ofs, &retlen, ret = jffs2_flash_writev(c, vecs, 2, flash_ofs, &retlen,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册