Подробности
[В начало]
Проблема в реализации № F0001
Краткое описание
ext4: падение в mount_fs() из-за нулевого вердикта ext4_fill_super() в случае ошибки
Подробное описание
Если ext4_mb_init() вызвана из ext4_fill_super() заканчивается с ошибкой, то ext4_fill_super() возвращает 0.
Это происходит, т.к. возвращаемое значение ext4_mb_init() не присваивается в ret, содержащую в тот момент 0, который и возвращается из ext4_fill_super().
В результате это приводит к kernel oops в mount_fs() при обращении к root->d_sb.
Пример
[ 116.851683] EXT4-fs (sdb): mount failed [ 116.859943] BUG: unable to handle kernel NULL pointer dereference at 0000000000000068 [ 116.861075] IP: [<ffffffff8117cf92>] mount_fs+0x52/0x1b0 [ 116.861075] PGD 7acfd067 PUD 7ccea067 PMD 0 [ 116.861075] Oops: 0000 [#1] SMP [ 116.861075] CPU 0 [ 116.861075] Modules linked in: ext4 jbd2 vesafb ppdev snd_intel8x0 snd_ac97_codec ac97_bus psmouse snd_pcm joydev mac_hid serio_raw parport_pc snd_timer snd soundcore i2c_piix4 snd_page_alloc lp parport reiserfs usbhid hid e1000 btrfs zlib_deflate libcrc32c [ 116.861075] [ 116.861075] Pid: 14195, comm: fault_sim Tainted: G W O 3.2.0-36-generic #57 innotek GmbH VirtualBox [ 116.861075] RIP: 0010:[<ffffffff8117cf92>] [<ffffffff8117cf92>] mount_fs+0x52/0x1b0 [ 116.861075] RSP: 0018:ffff88007cfd3dd8 EFLAGS: 00010207 [ 116.861075] RAX: 0000000000000000 RBX: ffff88007c151200 RCX: 000000000000a343 [ 116.861075] RDX: 0000000000000000 RSI: ffff88007cfd3c38 RDI: 0000000000000000 [ 116.861075] RBP: ffff88007cfd3e18 R08: ffffea0001f57b80 R09: ffffffffa0236028 [ 116.861075] R10: 000000000000c480 R11: ffff880082c00000 R12: 0000000000000000 [ 116.861075] R13: ffffffffa03627c0 R14: 0000000000000000 R15: 0000000000000000 [ 116.861075] FS: 00007f1468b18740(0000) GS:ffff880082c00000(0000) knlGS:0000000000000000 [ 116.861075] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 116.861075] CR2: 0000000000000068 CR3: 000000007c89f000 CR4: 00000000000006f0 [ 116.861075] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 116.861075] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 116.861075] Process fault_sim (pid: 14195, threadinfo ffff88007cfd2000, task ffff8800371eae00) [ 116.861075] Stack: [ 116.861075] 0000000000000004 0000000000000000 0000000000000004 ffff88007c151200 [ 116.861075] ffffffffa03627c0 0000000000000000 ffff88007d468da0 0000000000000000 [ 116.861075] ffff88007cfd3e68 ffffffff811978fa 0000000000000004 ffff88007d468da0 [ 116.861075] Call Trace: [ 116.861075] [<ffffffff811978fa>] vfs_kern_mount+0x6a/0xc0 [ 116.861075] [<ffffffff81198e04>] do_kern_mount+0x54/0x110 [ 116.861075] [<ffffffff8119a964>] do_mount+0x1a4/0x260 [ 116.861075] [<ffffffff8119ae40>] sys_mount+0x90/0xe0 [ 116.861075] [<ffffffff81614302>] system_call_fastpath+0x16/0x1b [ 116.861075] Code: 49 89 fd 41 89 f7 74 0a f6 47 08 02 0f 84 c7 00 00 00 44 ... [ 116.861075] RIP [<ffffffff8117cf92>] mount_fs+0x52/0x1b0 [ 116.861075] RSP <ffff88007cfd3dd8> [ 116.861075] CR2: 0000000000000068 [ 116.885769] ---[ end trace 0faf6cc74fc11e3e ]---
Компонент
linux-kernel 3.7
Принято
https://bugzilla.kernel.org/show_bug.cgi?id=48431
commit
Статус
Исправлено в kernel 3.8-rc1
[В начало]
»