Re: BUG: unable to handle kernel NULL pointer dereference at 00000048

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
On Wed, 29 Feb 2012 17:31:18 +0300, Slicky Devil wrote:
> Hello!
> 
> I think I found a bug for you, guys.
> 
> The situation was as following. At first, I set up LVM with a single
> lv (with nilfs) for root. Everything worked fine. Then I decided to
> create a separate home partition. I shrank the root a bit, created
> another nilfs logical volume for home. Then I shrank root/expanded
> home a couple of times. In the end I got the bug, when tried to mount
> the home.
> 
> I'm pretty much confident (say 90%) that I didn't mess things up by
> shrinking a partition before resizing the appropriate filesystem.
>
> Now every time I try to mount home I get the following:
> 
> [ 1367.830334] BUG: unable to handle kernel NULL pointer dereference at 00000048
> [ 1367.831581] IP: [<d0d7a08e>] nilfs_load_super_block+0x17e/0x280 [nilfs2]
> [ 1367.832098] *pde = 00000000
> [ 1367.832596] Oops: 0000 [#1] PREEMPT SMP
> [ 1367.833098] Modules linked in: ext2 mbcache snd_intel8x0 e1000
> ppdev snd_ac97_codec ac97_bus snd_pcm snd_page_alloc vboxvideo(O)
> snd_timer drm snd agpgart parport_pc soundcore parport i2c_piix4
> i2c_core serio_raw psmouse pcspkr evdev joydev processor ac button
> vboxsf(O) vboxguest(O) nilfs2 dm_mod sr_mod cdrom sd_mod usbhid hid
> ahci libahci libata ohci_hcd scsi_mod usbcore usb_common
> [ 1367.833562]
> [ 1367.833562] Pid: 710, comm: mount.nilfs2 Tainted: G           O
> 3.2.6-2-ARCH #1 innotek GmbH VirtualBox
> [ 1367.833562] EIP: 0060:[<d0d7a08e>] EFLAGS: 00010202 CPU: 0
> [ 1367.833562] EIP is at nilfs_load_super_block+0x17e/0x280 [nilfs2]
> [ 1367.833562] EAX: c9cb6400 EBX: ce845e00 ECX: 00000000 EDX: 00000000
> [ 1367.833562] ESI: 00000001 EDI: 00000000 EBP: ca9bbe08 ESP: ca9bbdcc
> [ 1367.833562]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> [ 1367.833562] Process mount.nilfs2 (pid: 710, ti=ca9ba000
> task=cf054d20 task.ti=ca9ba000)
> [ 1367.833562] Stack:
> [ 1367.833562]  00000400 ce845e1c 0013f800 00000000 00000000 00000000
> cc7d6c00 00000400
> [ 1367.833562]  00000001 00000001 00000001 00000001 ce845e00 ca9bbe30
> cc7d6c00 ca9bbe40
> [ 1367.833562]  d0d7a87b ca9bbe30 00000114 000080d0 00000200 00034460
> cc7d6db0 00000000
> [ 1367.833562] Call Trace:
> [ 1367.833562]  [<d0d7a87b>] init_nilfs+0x4b/0x2e0 [nilfs2]
> [ 1367.833562]  [<d0d6f707>] nilfs_mount+0x447/0x5b0 [nilfs2]
> [ 1367.833562]  [<c01f33a4>] ? pcpu_alloc+0x714/0x810
> [ 1367.833562]  [<c02d2add>] ? ida_get_new_above+0x1ad/0x230
> [ 1367.833562]  [<c02d2add>] ? ida_get_new_above+0x1ad/0x230
> [ 1367.833562]  [<c0226636>] mount_fs+0x36/0x180
> [ 1367.833562]  [<c01f34af>] ? __alloc_percpu+0xf/0x20
> [ 1367.833562]  [<c023d961>] vfs_kern_mount+0x51/0xa0
> [ 1367.833562]  [<c023ddae>] do_kern_mount+0x3e/0xe0
> [ 1367.833562]  [<c023f189>] do_mount+0x169/0x700
> [ 1367.833562]  [<c01eeb29>] ? strndup_user+0x49/0x70
> [ 1367.833562]  [<c023fa9b>] sys_mount+0x6b/0xa0
> [ 1367.833562]  [<c04abd1f>] sysenter_do_call+0x12/0x28
> [ 1367.833562] Code: 53 18 8b 43 20 89 4b 18 8b 4b 24 89 53 1c 89 43
> 24 89 4b 20 8b 43 20 c7 43 2c 00 00 00 00 23 75 e8 8b 50 68 89 53 28
> 8b 54 b3 20 <8b> 72 48 8b 7a 4c 8b 55 08 89 b3 84 00 00 00 89 bb 88 00
> 00 00
> [ 1367.833562] EIP: [<d0d7a08e>] nilfs_load_super_block+0x17e/0x280
> [nilfs2] SS:ESP 0068:ca9bbdcc
> [ 1367.833562] CR2: 0000000000000048
> [ 1367.855410] ---[ end trace 0b5fed15fa08cff2 ]---
> 
> The kernel is the standard archlinux "stocK" kernel run within
> virtualbox: Linux arch1 3.2.6-2-ARCH #1 SMP PREEMPT Thu Feb 16
> 10:23:00 UTC 2012 i686 Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
> GenuineIntel GNU/Linux
> 
> I can provide the partition superblock, if necessary.

Thank you for reporting this issue.

I found a bug in the nilfs_load_super_block function which has
potential to cause this oops.

Could you try the following patch if you still have the partition ?


Thanks,
Ryusuke Konishi

diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
index d327140..35a8970 100644
--- a/fs/nilfs2/the_nilfs.c
+++ b/fs/nilfs2/the_nilfs.c
@@ -515,6 +515,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
 		brelse(sbh[1]);
 		sbh[1] = NULL;
 		sbp[1] = NULL;
+		valid[1] = 0;
 		swp = 0;
 	}
 	if (!valid[swp]) {
-- 
1.7.7.4
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux BTRFS]     [Linux CIFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux