aboutsummaryrefslogtreecommitdiffstats
path: root/fs/libfs.c
diff options
context:
space:
mode:
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2010-05-01 11:54:21 +0900
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2010-05-10 11:32:32 +0900
commit25294d8c376296b1420694317e9856eaaea710ca (patch)
tree0241728923929381293a738222967952531d5625 /fs/libfs.c
parent34cb9b5c973ac06449b96884be932da9a9b99819 (diff)
downloadkernel_samsung_crespo-25294d8c376296b1420694317e9856eaaea710ca.zip
kernel_samsung_crespo-25294d8c376296b1420694317e9856eaaea710ca.tar.gz
kernel_samsung_crespo-25294d8c376296b1420694317e9856eaaea710ca.tar.bz2
nilfs2: use checkpoint number instead of timestamp to select super block
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: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Diffstat (limited to 'fs/libfs.c')
0 files changed, 0 insertions, 0 deletions