diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-06-10 11:32:05 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-06-10 16:13:28 +0300 |
commit | 6b5c94c6b4e1630a8e1ee7d30383d9396603749f (patch) | |
tree | 28e1ab5143f317d561197b3bebfe2994c12ddec8 /lib | |
parent | 815bc5f8fe516f55291aef90f2142073821e7a9c (diff) | |
download | linux-stable-6b5c94c6b4e1630a8e1ee7d30383d9396603749f.tar.gz linux-stable-6b5c94c6b4e1630a8e1ee7d30383d9396603749f.tar.bz2 linux-stable-6b5c94c6b4e1630a8e1ee7d30383d9396603749f.zip |
UBI: handle more error codes
The UBIFS WL worker may encounter read errors and there is logic
which makes a decision whether we should do one of:
1. cancel the operation and move the PEB with the read errors to
the 'erroneous' list;
2. switch to R/O mode.
ATM, only -EIO errors trigger 1., other errors trigger 2. The idea
is that if we know we encountered an I/O error, do 1. Otherwise,
we do not know how to react, and do 2., just in case. E.g., if
the underlying driver became crazy because of a bug, we do not
want to harm any data, and switch to R/O mode.
This patch does 2 things:
1. Makes sure reads from the source PEB always cause 1. This is
more consistent with other reads which come from the upper
layers and never cause R/O.
2. Teaches UBI to do 1. also on -EBADMSG, UBI_IO_BAD_VID_HDR,
-ENOMEM, and -ETIMEOUT. But this is only when reading the
target PEB.
This preblems were hunted by Adrian Hunter.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions