]> git.baikalelectronics.ru Git - kernel.git/commit
nilfs2: ensure to clear dirty state when deleting metadata file block
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Tue, 5 May 2009 12:52:06 +0000 (21:52 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sun, 10 May 2009 08:04:42 +0000 (17:04 +0900)
commit017e63d96772e4a57c38e14da2b979d8b84b999c
tree6447e8318d2c2a22bebfd0c7e70f825fbdeeebdb
parent552e0e5a8a24e314a8bbd40365b5ded5f02e0c9b
nilfs2: ensure to clear dirty state when deleting metadata file block

This would fix the following failure during GC:

 nilfs_cpfile_delete_checkpoints: cannot delete block
 NILFS: GC failed during preparation: cannot delete checkpoints: err=-2

The problem was caused by a break in state consistency between page
cache and btree; the above block was removed from the btree but the
page buffering the block was remaining in the page cache in dirty
state.

This resolves the inconsistency by ensuring to clear dirty state of
the page buffering the deleted block.

Reported-by: David Arendt <admin@prnet.org>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
fs/nilfs2/mdt.c
fs/nilfs2/page.c