UBIFS recovery truncates file to zero size

Adrian Hunter adrian.hunter at nokia.com
Thu Mar 12 06:25:27 EDT 2009

Iram Shahzad wrote:
>>> For the write back enabled case, I was expecting the
>>> following behaviour:
>>>     power went down before the file is sync-ed, so
>>>     on the next booting the file will be in its old state,
>>>     that is it will contain the contents which it had before
>>>     this write.
>>> But instead of being in the old state, it becomes empty file.
>>> Is this really expected(correct) behaviour?
>> No.  How were you updating the file?
> The file is updated by a Java application in the following way.
> -----
> FileOutputStream str = new FileOutputStream(aFilename);
> // some write here
> str.flush();
> str.close();
> -----
> I switch off the power after confirming that the str.close() has been
> executed.
> P.S:
> If I add str.getFD().sync(); after the str.flush(), the file looks good in
> the next boot. However my question still remains for the case
> when I do not call str.getFD().sync:
> "why the file becomes empty rather than being in its old state?".
> Thanks
> Iram
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/

What makes you think that:

FileOutputStream str = new FileOutputStream(aFilename);

does not truncate the file to zero length?

More information about the linux-mtd mailing list