diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-26 07:58:19 +0200 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-06-01 11:29:06 +0200 |
commit | da8b94ea61c5d80aae0cc7b7541f1e0fa7459391 (patch) | |
tree | 5d0b7c64b7f5afd9c9b2c528ed08e7d8a0d97859 /fs/ubifs/shrinker.c | |
parent | UBIFS: amend ubifs_recover_leb interface (diff) | |
download | linux-da8b94ea61c5d80aae0cc7b7541f1e0fa7459391.tar.xz linux-da8b94ea61c5d80aae0cc7b7541f1e0fa7459391.zip |
UBIFS: fix recovery broken by the previous recovery fix
Unfortunately, the recovery fix d1606a59b6be4ea392eabd40d1250aa1eeb19efb
(UBIFS: fix extremely rare mount failure) broke recovery. This commit make
UBIFS drop the last min. I/O unit in all journal heads, but this is needed only
for the GC head. And this does not work for non-GC heads. For example, if
suppose we have min. I/O units A and B, and A contains a valid node X, which
was fsynced, and then a group of nodes Y which spans the rest of A and B. In
this case we'll drop not only Y, but also X, which is obviously incorrect.
This patch fixes the issue and additionally makes recovery to drop last min.
I/O unit only for the GC head, and leave things as they have been for ages for
the other heads - this is safer.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/shrinker.c')
0 files changed, 0 insertions, 0 deletions