[PATCH] [JFFS2] load_xattr_datum need to return a positive number in case of unrecoverable error
Jean-Christophe DUBOIS
jcd at tribudubois.net
Sun Apr 22 13:35:33 EDT 2012
On 22/04/2012 15:16, Artem Bityutskiy wrote:
> On Wed, 2012-04-11 at 22:54 +0200, Jean-Christophe DUBOIS wrote:
>> As per load_xattr_datum() comment:
>> rc< 0 : recoverable error, try again
>> rc = 0 : success
>> rc> 0 : Unrecoverable error, this node should be deleted.
>>
>> For now we were only returning negative number (so recoverable error).
>> But a CRC failure or some inconsitent data seems fatal enough to
>> consider the attribute instance (version) as lost.
>>
>> So this patch returns a positive number (1) when it detects an
>> unrecoverable error.
>>
>> Signed-off-by: Jean-Christophe DUBOIS<jcd at tribudubois.net>
> Looks sensible. But since I did not take your previous patch, you might
> want to check whether this patch is really independent.
I believe it is. At the moment the load_xttrr_datum() (and such)
functions never return an unrecoverable error. All error code are
negative (and therefore recoverable) which mean JFFS will not try to fix
errors that are permanent. This also means there is some code in JFFS2
that is never executed (the one that try to recover from unrecoverable
errors).
Please note that this patch is more or less a "partial reverse" of the
following patch (http://patchwork.ozlabs.org/patch/71147/) which was
accepted in 2010-12-03. I am not sure this accepted patch was correct at
the time. Granted, returning (positive) EIO might not have been a good
idea but turning them in negative values was not necessarily the good
solution.
> Also, please,
> tell whether this fixes a real-life bug or you are fixing a complaint
> of a static analysis tools or something like this?
> And please, tell how
> you tested it.
>
> Thanks!
>
More information about the linux-mtd
mailing list