mtd-utils/nandwrite: what if write fails?
Ricard Wanderlof
ricard.wanderlof at axis.com
Tue Oct 17 10:17:11 EDT 2006
I have a question regarding writes to NAND flash; for instance, in
mtd-utils/nandwrite.c, prior to writing to a block, it is checked so that
it isn't bad (using the MEMGETBADBLOCK ioctl). However, what happens if
the block goes bad during write? If the pwrite() call which writes out the
page data fails, the application says perror() and exits. Shouldn't it
mark the block as bad, and re-write the data so far written to the block
to the next good block? As I understand it, mtd doesn't mark a block bad,
it is up to the application or overlying file system (e.g. JFFS2). So it
won't even help to run nandwrite again as the block has not been marked
bad.
Or have I missed something here?
(Or is it simply that normally nandwrite is only used during testing, or
writing an initial filesystem, and the likelyhood of a block failing at
precisely this time is rather small, compared to the rest of the lifetime
of the memory (i.e. repeated JFFS2 accesses)?)
/Ricard
--
Ricard Wolf Wanderlöf ricardw(at)axis.com
Axis Communications AB, Lund, Sweden www.axis.com
Phone +46 46 272 2016 Fax +46 46 13 61 30
More information about the linux-mtd
mailing list