[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: intrep.c update to handle gaps in the middle of the log.



> -----Original Message-----
> From: Sébastien Côté [mailto:scote1@xxxxxxx.COM]
> Sent: 27 July 2000 02:27 pm
> 
> 
> Our original problem was a "hole" between two valid nodes (we 
> forgot to
> check if the data that followed was valid in the patch) but you're
> right, it could happen to the first sector.  Maybe we should 
> only check
> if a free space ends in the middle of a sector.  In that 
> case, treat the
> beginning of that sector as dirty.  Would that do the trick?

Yes, I think it would.

> 
> If we have :
> 
> >         0x000000 - 0x2b0000:    valid nodes
> >         0x2b0000 - 0x2b7000:    all 0xff	The error occured here
> >         0x2b7000 - 0x2c0000:    all zero      We set this 
> space as dirty
> >	  0x2c0000 - 0x2c8cff:    valid nodes
> >         0x2c8d00 - 0x75ffff:    all 0xff
> >         0x760000 - 0x76049f:    all zero
> >         0x7604a0 - 0x7dffff:    valid nodes
> 
> (Suppose all dirty space and valid nodes starts on the beginning of a
> sector, I didn't want to do the math)
> 
> Would the filesystem be mounted correctly or do we _have_ to set the
> first free space (where the error occured) as dirty too ? 

In this case, how does JFFS decide where the end of the log is? Is it at the
start of the first free space, or the second? My gut reaction would be to
set all but the largest of the free spaces to be dirty.

Simon