From 3aa5049f18ab21669fb11fbffe3932e1eee17cd7 Mon Sep 17 00:00:00 2001 From: Ryusuke Konishi Date: Wed, 7 Jul 2010 17:19:54 +0900 Subject: [PATCH] --- yaml --- r: 206349 b: refs/heads/master c: cfa913a5077f7619869b2b4d1bf23ccb4f8b3d7b h: refs/heads/master i: 206347: e928fa327d2a45c8c14003c942b545ef897bc21b v: v3 --- [refs] | 2 +- trunk/fs/nilfs2/btree.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 982b2da7bad0..e292a6850604 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7c01745781177795e39f78b2c2c42c470a13833a +refs/heads/master: cfa913a5077f7619869b2b4d1bf23ccb4f8b3d7b diff --git a/trunk/fs/nilfs2/btree.c b/trunk/fs/nilfs2/btree.c index b27a342c5af6..386356707f90 100644 --- a/trunk/fs/nilfs2/btree.c +++ b/trunk/fs/nilfs2/btree.c @@ -1920,6 +1920,18 @@ static void nilfs_btree_add_dirty_buffer(struct nilfs_btree *btree, node = (struct nilfs_btree_node *)bh->b_data; key = nilfs_btree_node_get_key(node, 0); level = nilfs_btree_node_get_level(node); + if (level < NILFS_BTREE_LEVEL_NODE_MIN || + level >= NILFS_BTREE_LEVEL_MAX) { + dump_stack(); + printk(KERN_WARNING + "%s: invalid btree level: %d (key=%llu, ino=%lu, " + "blocknr=%llu)\n", + __func__, level, (unsigned long long)key, + NILFS_BMAP_I(&btree->bt_bmap)->vfs_inode.i_ino, + (unsigned long long)bh->b_blocknr); + return; + } + list_for_each(head, &lists[level]) { cbh = list_entry(head, struct buffer_head, b_assoc_buffers); cnode = (struct nilfs_btree_node *)cbh->b_data;