From 4e13e66bee2d792c1aae21797f16c181024834eb Mon Sep 17 00:00:00 2001 From: Ryusuke Konishi Date: Sun, 18 Jul 2010 10:42:25 +0900 Subject: nilfs2: introduce check flag to btree node buffer nilfs_btree_get_block() now may return untested buffer due to read-ahead. This adds a new flag for buffer heads so that the btree code can check whether the buffer is already verified or not. Signed-off-by: Ryusuke Konishi --- fs/nilfs2/btree.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'fs/nilfs2/btree.c') diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c index 1b5321c0bca..d3faa0bba17 100644 --- a/fs/nilfs2/btree.c +++ b/fs/nilfs2/btree.c @@ -370,8 +370,16 @@ static int nilfs_btree_node_broken(const struct nilfs_btree_node *node, int nilfs_btree_broken_node_block(struct buffer_head *bh) { - return nilfs_btree_node_broken((struct nilfs_btree_node *)bh->b_data, + int ret; + + if (buffer_nilfs_checked(bh)) + return 0; + + ret = nilfs_btree_node_broken((struct nilfs_btree_node *)bh->b_data, bh->b_size, bh->b_blocknr); + if (likely(!ret)) + set_buffer_nilfs_checked(bh); + return ret; } static struct nilfs_btree_node * -- cgit v1.2.3-70-g09d2