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

Re: Major JFFS2 bug (?)





Vipin.Malik@xxxxxxx.com said:
>  My argument is to put the roll back and recover mechanism inside the
> JFFS2_write() handling, the other argument is for the users to handle
> it themselves when they need it. 

Your original statement was that the current lack of atomicity of writes 
w.r.t. power failure was a bug.

That point is what's being denied with some vehemence. I'm unconvinced
either way, but because write() is permitted to return having written fewer
data than it was requested to, I don't think it matters - because even if it
_is_ against the spec you can't prove it actually happened that way. You 
can't distinguish a power failure in the middle of a write from a power 
failure immediately after a short write.


Vipin.Malik@xxxxxxx.com said:
> My argument is to put the roll back and recover mechanism inside the
> JFFS2_write() handling, the other argument is for the users to handle
> it themselves when they need it.

> In the system implementation method *all* programs can natively
> utilize this feature. It needs to be coded once, tested once- then
> it'll always work. That's the advantage. 

That's not an unreasonable feature request, when phrased as a feature
request not a bug report. Doing transactions directly on the flash rather
than through an extra layer of indirection can be a good thing - after all,
that's half the reason why JFFS{,2} is considered far better than emulating
a block device and then using a 'normal' journalling filesystem, isn't it? 
Otherwise, the extra layer of abstraction - journalling upon journalling - 
translates directly into more wear on the flash chips than is otherwise 
necessary.

It's also a feature which at first ponderance seems like it could be
reasonably simple to implement and relatively unobtrusive.

I'm not about to write it myself, but if you want to present a design for 
consideration, I certainly won't dismiss it out of hand.

I believe ext3 exposes transactions to userspace for use by Intermezzo. 
Take a look at the API used for that. Also consider the requirements of 
database backends.

--
dwmw2



To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to majordomo@xxxxxxx.com