[JFFS2] Debug code clean up - step 1
Move debug functions into a seperate source file Signed-off-by: Artem B. Bityutskiy <dedekind@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:

committed by
Thomas Gleixner

parent
dae6227f71
commit
730554d946
@@ -7,7 +7,7 @@
|
||||
*
|
||||
* For licensing information, see the file 'LICENCE' in this directory.
|
||||
*
|
||||
* $Id: readinode.c,v 1.125 2005/07/10 13:13:55 dedekind Exp $
|
||||
* $Id: readinode.c,v 1.126 2005/07/17 06:56:21 dedekind Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -22,104 +22,6 @@
|
||||
|
||||
static int jffs2_add_frag_to_fragtree(struct jffs2_sb_info *c, struct rb_root *list, struct jffs2_node_frag *newfrag);
|
||||
|
||||
#if CONFIG_JFFS2_FS_DEBUG >= 2
|
||||
static void jffs2_print_fragtree(struct rb_root *list, int permitbug)
|
||||
{
|
||||
struct jffs2_node_frag *this = frag_first(list);
|
||||
uint32_t lastofs = 0;
|
||||
int buggy = 0;
|
||||
|
||||
while(this) {
|
||||
if (this->node)
|
||||
printk(KERN_DEBUG "frag %04x-%04x: 0x%08x(%d) on flash (*%p). left (%p), right (%p), parent (%p)\n",
|
||||
this->ofs, this->ofs+this->size, ref_offset(this->node->raw), ref_flags(this->node->raw),
|
||||
this, frag_left(this), frag_right(this), frag_parent(this));
|
||||
else
|
||||
printk(KERN_DEBUG "frag %04x-%04x: hole (*%p). left (%p} right (%p), parent (%p)\n", this->ofs,
|
||||
this->ofs+this->size, this, frag_left(this), frag_right(this), frag_parent(this));
|
||||
if (this->ofs != lastofs)
|
||||
buggy = 1;
|
||||
lastofs = this->ofs+this->size;
|
||||
this = frag_next(this);
|
||||
}
|
||||
if (buggy && !permitbug) {
|
||||
printk(KERN_CRIT "Frag tree got a hole in it\n");
|
||||
BUG();
|
||||
}
|
||||
}
|
||||
|
||||
void jffs2_print_frag_list(struct jffs2_inode_info *f)
|
||||
{
|
||||
jffs2_print_fragtree(&f->fragtree, 0);
|
||||
|
||||
if (f->metadata) {
|
||||
printk(KERN_DEBUG "metadata at 0x%08x\n", ref_offset(f->metadata->raw));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_JFFS2_FS_DEBUG >= 1
|
||||
static int jffs2_sanitycheck_fragtree(struct jffs2_inode_info *f)
|
||||
{
|
||||
struct jffs2_node_frag *frag;
|
||||
int bitched = 0;
|
||||
|
||||
for (frag = frag_first(&f->fragtree); frag; frag = frag_next(frag)) {
|
||||
|
||||
struct jffs2_full_dnode *fn = frag->node;
|
||||
if (!fn || !fn->raw)
|
||||
continue;
|
||||
|
||||
if (ref_flags(fn->raw) == REF_PRISTINE) {
|
||||
|
||||
if (fn->frags > 1) {
|
||||
printk(KERN_WARNING "REF_PRISTINE node at 0x%08x had %d frags. Tell dwmw2\n", ref_offset(fn->raw), fn->frags);
|
||||
bitched = 1;
|
||||
}
|
||||
/* A hole node which isn't multi-page should be garbage-collected
|
||||
and merged anyway, so we just check for the frag size here,
|
||||
rather than mucking around with actually reading the node
|
||||
and checking the compression type, which is the real way
|
||||
to tell a hole node. */
|
||||
if (frag->ofs & (PAGE_CACHE_SIZE-1) && frag_prev(frag) && frag_prev(frag)->size < PAGE_CACHE_SIZE && frag_prev(frag)->node) {
|
||||
printk(KERN_WARNING "REF_PRISTINE node at 0x%08x had a previous non-hole frag in the same page. Tell dwmw2\n",
|
||||
ref_offset(fn->raw));
|
||||
bitched = 1;
|
||||
}
|
||||
|
||||
if ((frag->ofs+frag->size) & (PAGE_CACHE_SIZE-1) && frag_next(frag) && frag_next(frag)->size < PAGE_CACHE_SIZE && frag_next(frag)->node) {
|
||||
printk(KERN_WARNING "REF_PRISTINE node at 0x%08x (%08x-%08x) had a following non-hole frag in the same page. Tell dwmw2\n",
|
||||
ref_offset(fn->raw), frag->ofs, frag->ofs+frag->size);
|
||||
bitched = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bitched) {
|
||||
struct jffs2_node_frag *thisfrag;
|
||||
|
||||
printk(KERN_WARNING "Inode is #%u\n", f->inocache->ino);
|
||||
thisfrag = frag_first(&f->fragtree);
|
||||
while (thisfrag) {
|
||||
if (!thisfrag->node) {
|
||||
printk("Frag @0x%x-0x%x; node-less hole\n",
|
||||
thisfrag->ofs, thisfrag->size + thisfrag->ofs);
|
||||
} else if (!thisfrag->node->raw) {
|
||||
printk("Frag @0x%x-0x%x; raw-less hole\n",
|
||||
thisfrag->ofs, thisfrag->size + thisfrag->ofs);
|
||||
} else {
|
||||
printk("Frag @0x%x-0x%x; raw at 0x%08x(%d) (0x%x-0x%x)\n",
|
||||
thisfrag->ofs, thisfrag->size + thisfrag->ofs,
|
||||
ref_offset(thisfrag->node->raw), ref_flags(thisfrag->node->raw),
|
||||
thisfrag->node->ofs, thisfrag->node->ofs+thisfrag->node->size);
|
||||
}
|
||||
thisfrag = frag_next(thisfrag);
|
||||
}
|
||||
}
|
||||
return bitched;
|
||||
}
|
||||
#endif /* D1 */
|
||||
|
||||
static void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this)
|
||||
{
|
||||
if (this->node) {
|
||||
@@ -190,12 +92,8 @@ int jffs2_add_full_dnode_to_inode(struct jffs2_sb_info *c, struct jffs2_inode_in
|
||||
mark_ref_normal(next->node->raw);
|
||||
}
|
||||
}
|
||||
D2(if (jffs2_sanitycheck_fragtree(f)) {
|
||||
printk(KERN_WARNING "Just added node %04x-%04x @0x%08x on flash, newfrag *%p\n",
|
||||
fn->ofs, fn->ofs+fn->size, ref_offset(fn->raw), newfrag);
|
||||
return 0;
|
||||
})
|
||||
D2(jffs2_print_frag_list(f));
|
||||
D2(jffs2_dbg_fragtree_paranoia_check(f));
|
||||
D2(jffs2_dbg_dump_fragtree(f));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -582,7 +480,7 @@ static int jffs2_do_read_inode_internal(struct jffs2_sb_info *c,
|
||||
|
||||
jffs2_free_tmp_dnode_info(tn);
|
||||
}
|
||||
D1(jffs2_sanitycheck_fragtree(f));
|
||||
jffs2_dbg_fragtree_paranoia_check(f);
|
||||
|
||||
if (!fn) {
|
||||
/* No data nodes for this inode. */
|
||||
|
Reference in New Issue
Block a user