diff options
author | Adrian Hunter <ext-adrian.hunter@nokia.com> | 2008-07-18 09:47:41 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-13 04:22:41 -0400 |
commit | 16dfd804b44ef7156d1c201f100bd0d9dc6b7c4b (patch) | |
tree | 8286d4c108b93037f0775ca5fbaf09985b5f658b /fs/ubifs | |
parent | 1e0f358e29cc91c8eb09e10cbf1f6bb58a62c795 (diff) |
UBIFS: fix error return in failure mode
UBIFS recovery testing debug facility simulates media failures.
When simulating an IO error, the error code returned must be
-EIO but it was not always if the user switched off the
debug recovery testing option at the same time.
Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Diffstat (limited to 'fs/ubifs')
-rw-r--r-- | fs/ubifs/debug.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 4e3aaeba4eca..0adfb29b8503 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c | |||
@@ -2208,16 +2208,17 @@ int dbg_leb_read(struct ubi_volume_desc *desc, int lnum, char *buf, int offset, | |||
2208 | int dbg_leb_write(struct ubi_volume_desc *desc, int lnum, const void *buf, | 2208 | int dbg_leb_write(struct ubi_volume_desc *desc, int lnum, const void *buf, |
2209 | int offset, int len, int dtype) | 2209 | int offset, int len, int dtype) |
2210 | { | 2210 | { |
2211 | int err; | 2211 | int err, failing; |
2212 | 2212 | ||
2213 | if (in_failure_mode(desc)) | 2213 | if (in_failure_mode(desc)) |
2214 | return -EIO; | 2214 | return -EIO; |
2215 | if (do_fail(desc, lnum, 1)) | 2215 | failing = do_fail(desc, lnum, 1); |
2216 | if (failing) | ||
2216 | cut_data(buf, len); | 2217 | cut_data(buf, len); |
2217 | err = ubi_leb_write(desc, lnum, buf, offset, len, dtype); | 2218 | err = ubi_leb_write(desc, lnum, buf, offset, len, dtype); |
2218 | if (err) | 2219 | if (err) |
2219 | return err; | 2220 | return err; |
2220 | if (in_failure_mode(desc)) | 2221 | if (failing) |
2221 | return -EIO; | 2222 | return -EIO; |
2222 | return 0; | 2223 | return 0; |
2223 | } | 2224 | } |