JFFS2 eats memory

David Woodhouse dwmw2 at infradead.org
Wed Jul 21 07:51:43 EDT 2004


On Wed, 2004-07-21 at 08:25 +0200, Øyvind Harboe wrote:

> in gc.c:

> -	241		if (!raw->next_in_ino) {

> -	251		ic = jffs2_raw_ref_to_ic(raw);

Hmmm. Surely you shouldn't be able to get to those in the case where
gc_node is NULL? You should hit the condition at line 218 because
jeb->user_size should be zero.

Remember, gc_node is the placemarker for the garbage-collector which is
busily obsoleting every node in this block so that the block can be
erased and returned to the free pool. If you were freeing a node, and
there was no 'next' node when you did so, that must have meant you got
to the end of the eraseblock, surely?

Obviously I'm wrong -- you have empirical evidence. But why?

PS. Will somebody please kick Beat Morf <beat.morf at duagon.ch> off the
eCos list? He has an extremely broken autoresponder -- it's replying to
the From: address in the mail instead of the SMTP reverse-path, it's
replying with non-error message status so that it can cause mail loops,
and it's not even rate-limited. I get a response for every mail I send.

-- 
dwmw2





More information about the linux-mtd mailing list