• Jaegeuk Kim's avatar
    f2fs: don't need to wait for node writes for atomic write · b6a245eb
    Jaegeuk Kim authored
    We have a node chain to serialize node block writes, so if any IOs for
    node block writes are reordered, we'll get broken node chain. IOWs,
    roll-forward recovery will see all or none node blocks given fsync
    mark.
    
    E.g.,
    Node chain consists of:
     N1 -> N2 -> N3 -> NFSYNC -> N1' -> N2' -> N'FSYNC
    
    Reordered to:
    1) N1 -> N2 -> N3 -> N2' -> NFSYNC -> N'FSYNC -> power-cut
    2) N1 -> N2 -> N3 -> N1' -> NFSYNC -> power-cut
    3) N1 -> N2 -> NFSYNC -> N1' -> N'FSYNC -> N3 -> power-cut
    4) N1 -> NFSYNC -> N1' -> N2' -> N'FSYNC -> N3 -> power-cut
    
    Roll-forward recovery can proceed to:
    1) N1 -> N2 -> N3 -> NFSYNC -> X
    2) N1 -> N2 -> N3 -> NFSYNC -> N1' -> X
    3) N1 -> N2 -> N3 -> FSYNC -> N1' -> X
    4) N1 -> X
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    b6a245eb
file.c 58.9 KB