summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-06-10 11:32:05 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-06-10 16:13:28 +0300
commit6b5c94c6b4e1630a8e1ee7d30383d9396603749f (patch)
tree28e1ab5143f317d561197b3bebfe2994c12ddec8 /firmware
parent815bc5f8fe516f55291aef90f2142073821e7a9c (diff)
downloadlinux-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 'firmware')
0 files changed, 0 insertions, 0 deletions