
Hello Andreas,
On 10/30/2012 4:32 AM, Andreas Bießmann wrote:
Dear Vikram Narayanan,
first of all you are right. u-boot ubifs implementation will never recover the ubifs on media, cause it is mounted read only.
<snip>
calls sget() (line 1043) which in turn calls kzalloc() (line 67) which may return -ENOMEM
I agree. But in Dimax's case this isn't. Right?
But u-boot will manage to get the data out of the unordered ubifs (if no error like this ENOMEM occur). That is the same process as in kernel if it is mounted read-only (recovery deferred).
I can't comment on this, unless I know the specifics.
So if the kernel can manage to mount the unordered ubifs u-boot should do so. If it can't (but the kernel can) there is an error that should be fixed.
But in the kernel, the read-only isn't hardcoded. So, the kernel code can try to recover and even update the corrupted data back to the media and mount it. (It's my guess. The kernel may/mayn't do this way).
But if the same fails to happen in u-boot code, I'd say the feature is missing and it needs to be pulled in from the kernel code.
Regards, Vikram