diff options
author | David Woodhouse <dwmw2@infradead.org> | 2006-05-21 08:29:11 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-05-21 08:29:11 -0400 |
commit | ca89a517fa577e6f26621463d3aa4f3c3d530b1e (patch) | |
tree | e277f31d6629c5dcc358adfa80190fc247d43f65 /fs/jffs2/nodemgmt.c | |
parent | 010b06d6d07d9fa5ea6070aa72bb3e0de1761ab7 (diff) |
[JFFS2] Finally eliminate __totlen field from struct jffs2_raw_node_ref
Well, almost. We'll actually keep a 'TEST_TOTLEN' macro set for now, and keep
doing some paranoia checks to make sure it's all working correctly. But if
TEST_TOTLEN is unset, the size of struct jffs2_raw_node_ref drops from 16
bytes to 12 on 32-bit machines. That's a saving of about half a megabyte of
memory on the OLPC prototype board, with 125K or so nodes in its 512MiB of
flash.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/nodemgmt.c')
-rw-r--r-- | fs/jffs2/nodemgmt.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c index 4701556be49d..9a0f312cfcda 100644 --- a/fs/jffs2/nodemgmt.c +++ b/fs/jffs2/nodemgmt.c | |||
@@ -386,7 +386,9 @@ int jffs2_add_physical_node_ref(struct jffs2_sb_info *c, struct jffs2_raw_node_r | |||
386 | struct jffs2_eraseblock *jeb; | 386 | struct jffs2_eraseblock *jeb; |
387 | 387 | ||
388 | jeb = &c->blocks[new->flash_offset / c->sector_size]; | 388 | jeb = &c->blocks[new->flash_offset / c->sector_size]; |
389 | #ifdef TEST_TOTLEN | ||
389 | new->__totlen = len; | 390 | new->__totlen = len; |
391 | #endif | ||
390 | 392 | ||
391 | D1(printk(KERN_DEBUG "jffs2_add_physical_node_ref(): Node at 0x%x(%d), size 0x%x\n", ref_offset(new), ref_flags(new), len)); | 393 | D1(printk(KERN_DEBUG "jffs2_add_physical_node_ref(): Node at 0x%x(%d), size 0x%x\n", ref_offset(new), ref_flags(new), len)); |
392 | #if 1 | 394 | #if 1 |
@@ -679,7 +681,9 @@ void jffs2_mark_node_obsolete(struct jffs2_sb_info *c, struct jffs2_raw_node_ref | |||
679 | 681 | ||
680 | spin_lock(&c->erase_completion_lock); | 682 | spin_lock(&c->erase_completion_lock); |
681 | 683 | ||
684 | #ifdef TEST_TOTLEN | ||
682 | ref->__totlen += n->__totlen; | 685 | ref->__totlen += n->__totlen; |
686 | #endif | ||
683 | ref->next_phys = n->next_phys; | 687 | ref->next_phys = n->next_phys; |
684 | if (jeb->last_node == n) jeb->last_node = ref; | 688 | if (jeb->last_node == n) jeb->last_node = ref; |
685 | if (jeb->gc_node == n) { | 689 | if (jeb->gc_node == n) { |
@@ -702,7 +706,9 @@ void jffs2_mark_node_obsolete(struct jffs2_sb_info *c, struct jffs2_raw_node_ref | |||
702 | p = p->next_phys; | 706 | p = p->next_phys; |
703 | 707 | ||
704 | if (ref_obsolete(p) && !ref->next_in_ino) { | 708 | if (ref_obsolete(p) && !ref->next_in_ino) { |
709 | #ifdef TEST_TOTLEN | ||
705 | p->__totlen += ref->__totlen; | 710 | p->__totlen += ref->__totlen; |
711 | #endif | ||
706 | if (jeb->last_node == ref) { | 712 | if (jeb->last_node == ref) { |
707 | jeb->last_node = p; | 713 | jeb->last_node = p; |
708 | } | 714 | } |