• Ryusuke Konishi's avatar
    nilfs2: use checkpoint number instead of timestamp to select super block · 25294d8c
    Ryusuke Konishi authored
    Nilfs maintains two super blocks, and selects the new one on mount
    time if they both have valid checksums and their timestamps differ.
    
    However, this has potential for mis-selection since the system clock
    may be rewinded and the resolution of the timestamps is not high.
    
    Usually this doesn't become an issue because both super blocks are
    updated at the same time when the file system is unmounted.  Even if
    the file system wasn't unmounted cleanly, the roll-forward recovery
    will find the proper log which stores the latest super root.  Thus,
    the issue can appear only if update of one super block fails and the
    clock happens to be rewinded.
    
    This fixes the issue by using checkpoint numbers instead of timestamps
    to pick the super block storing the location of the latest log.
    Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    25294d8c
the_nilfs.c 21.3 KB