aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nilfs2/inode.c
diff options
context:
space:
mode:
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2009-09-27 12:46:11 -0400
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2009-09-29 07:12:56 -0400
commit1f28fcd925b2b3157411bbd08f0024b55b70d8dd (patch)
tree339976516f9d8c25f4efb3ba8bbffcc395d58c83 /fs/nilfs2/inode.c
parent17d857be649a21ca90008c6dc425d849fa83db5c (diff)
nilfs2: fix missing zero-fill initialization of btree node cache
This will fix file system corruption which infrequently happens after mount. The problem was reported from users with the title "[NILFS users] Fail to mount NILFS." (Message-ID: <200908211918.34720.yuri@itinteg.net>), and so forth. I've also experienced the corruption multiple times on kernel 2.6.30 and 2.6.31. The problem turned out to be caused due to discordance between mapping->nrpages of a btree node cache and the actual number of pages hung on the cache; if the mapping->nrpages becomes zero even as it has pages, truncate_inode_pages() returns without doing anything. Usually this is harmless except it may cause page leak, but garbage collection fairly infrequently sees a stale page remained in the btree node cache of DAT (i.e. disk address translation file of nilfs), and induces the corruption. I identified a missing initialization in btree node caches was the root cause. This corrects the bug. I've tested this for kernel 2.6.30 and 2.6.31. Reported-by: Yuri Chislov <yuri@itinteg.net> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Cc: stable <stable@kernel.org>
Diffstat (limited to 'fs/nilfs2/inode.c')
0 files changed, 0 insertions, 0 deletions