Linux NILFS development
 help / color / mirror / Atom feed
From: Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org>
To: lwojcicki-V+nj596LuoKHKKo6LODCOg@public.gmane.org
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: problem with nilfs_cleanerd
Date: Wed, 07 Jul 2010 15:02:25 +0900 (JST)	[thread overview]
Message-ID: <20100707.150225.135808641.ryusuke@osrg.net> (raw)
In-Reply-To: <1278406961.8438.6.camel@Stanowisko-25>

Hi,

On Tue, 06 Jul 2010 11:02:41 +0200, Łukasz_Wójcicki wrote:
> I'am using kernel 2.6.20 with nilf_utils-2-0-18 and nilfs kernel module
> 2-0-20 .
> 
> <1>Unable to handle kernel NULL pointer dereference at virtual address
> 00000000
> <1>pgd = c4eb0000
> <1>[00000000] *pgd=c4e2d031, *pte=00000000, *ppte=00000000
> <4>Internal error: Oops: 17 [#1]
> <4>Modules linked in:
> <4>CPU: 0
> <4>PC is at nilfs_btree_lookup_dirty_buffers+0x10c/0x1ec
> <4>LR is at 0xc4c99b24
<snip>

Could you try the following patch to narrow down the cause?

There is a function lacking range check in the btree code.  This patch
will catch the defect if the oops comes from a range error.

I'm now reviewing the btree code to find out root cause of the range
error.

Thanks,
Ryusuke Konishi
---

diff --git a/fs/btree.c b/fs/btree.c
index beb11fe..9622ff4 100644
--- a/fs/btree.c
+++ b/fs/btree.c
@@ -2007,6 +2007,15 @@ 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_CRIT
+		       "%s: invalid btree level: %d (ino=%lu)\n", __func__,
+		       level, NILFS_BMAP_I(&btree->bt_bmap)->vfs_inode.i_ino);
+		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;
-- 
1.6.6.2


  reply	other threads:[~2010-07-07  6:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-06  9:02 problem with nilfs_cleanerd Łukasz Wójcicki
2010-07-07  6:02 ` Ryusuke Konishi [this message]
     [not found]   ` <20100707.150225.135808641.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-07-07  6:25     ` Łukasz Wójcicki
2010-07-07  6:39       ` Ryusuke Konishi
2010-07-07  7:53     ` Ryusuke Konishi
     [not found]       ` <20100707.165348.25143177.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-07-07 10:02         ` Łukasz Wójcicki
2010-07-07 10:32         ` problem with nilfs_cleanerd - part 2 Łukasz Wójcicki
2010-07-07 10:48           ` Łukasz Wójcicki
2010-07-07 17:40             ` Ryusuke Konishi
     [not found]               ` <20100708.024043.228010276.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-07-07 18:15                 ` Łukasz Wójcicki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100707.150225.135808641.ryusuke@osrg.net \
    --to=ryusuke-sg5x7nla6pw@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lwojcicki-V+nj596LuoKHKKo6LODCOg@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox