Re: Flash erase groups and filesystems

From: Jörn Engel
Date: Wed Aug 17 2005 - 06:47:51 EST


On Wed, 17 August 2005 13:35:11 +0200, Pierre Ossman wrote:
>
> Whilst we're on the subject, do the filesystems assume that the device
> can tell them exactly where the write failed? I.e. if the driver knows
> that 5 sectors were written correctly, but that it failed somewhere
> beyond that. It might have failed at sector 6, but it might also have
> failed at sector 10. The assumption that sectors contain either old or
> new data is still true, we're just unsure which. This can be the case
> when you feed a controller a lot of data and it can only report back
> success or failure.

Not really. In the most common case, things have failed because the
system died unexpectedly, either through power loss or kernel bugs or
the like. After such a clean unmount, a journal replay or fsck,
depending on the fs type, will fix things for you. That works without
any knowledge, where the last write failed.

If the error is really an IO error, the behaviour is heavily dependent
on the fs you used. Ext[23] will usually remount the fs read-only, so
you can hopefully retrieve all your data from the failing "hard
drive". In that case, again, it doesn't matter much where things
broke.

> >So the only remaining option is to add a new interface that lets
> >filesystems decide to support pre-erase in some form. And one such
> >interface would be the "forget" operation. Nice attribute of forget
> >is the fact that it would also help some FTL layers in the kernel.
> >There is nothing MMC-specific about it.
>
> A bit too much work for me right now. But I'll be there with my erase
> patch when someone implements it. :)

Good to know.

Jörn

--
There is no worse hell than that provided by the regrets
for wasted opportunities.
-- Andre-Louis Moreau in Scarabouche
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/