• Jan Kara's avatar
    jbd: Write journal superblock with WRITE_FUA after checkpointing · fd2cbd4d
    Jan Kara authored
    If journal superblock is written only in disk's caches and other transaction
    starts reusing space of the transaction cleaned from the log, it can happen
    blocks of a new transaction reach the disk before journal superblock. When
    power failure happens in such case, subsequent journal replay would still try
    to replay the old transaction but some of it's blocks may be already
    overwritten by the new transaction. For this reason we must use WRITE_FUA when
    updating log tail and we must first write new log tail to disk and update
    in-memory information only after that.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
checkpoint.c 22 KB