• Artem Bityutskiy's avatar
    UBIFS: fix recovery broken by the previous recovery fix · da8b94ea
    Artem Bityutskiy authored
    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: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
    da8b94ea
recovery.c 43.2 KB