git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e80a52d
)
ceph: remove fragile __map_osds optimization
author
Sage Weil
<sage@newdream.net>
Fri, 26 Feb 2010 17:37:33 +0000
(09:37 -0800)
committer
Sage Weil
<sage@newdream.net>
Fri, 26 Feb 2010 17:37:33 +0000
(09:37 -0800)
We used to try to avoid freeing and then reallocating the osd
struct. This is a bit fragile due to potential interactions with
other references (beyond o_requests), and may be the cause of
this crash:
[120633.442358] BUG: unable to handle kernel NULL pointer dereference at (null)
[120633.443292] IP: [<
ffffffff812549b6
>] rb_erase+0x11d/0x277
[120633.443292] PGD
f7ff3067
PUD
f7f53067
PMD 0
[120633.443292] Oops: 0000 [#1] PREEMPT SMP
[120633.443292] last sysfs file: /sys/kernel/uevent_seqnum
[120633.443292] CPU 1
[120633.443292] Modules linked in: ceph fan ac battery psmouse ehci_hcd ide_pci_generic ohci_hcd thermal processor button
[120633.443292] Pid: 3023, comm: ceph-msgr/1 Not tainted 2.6.32-rc2 #12 H8SSL
[120633.443292] RIP: 0010:[<
ffffffff812549b6
>] [<
ffffffff812549b6
>] rb_erase+0x11d/0x277
[120633.443292] RSP: 0018:
ffff8800f7b13a50
EFLAGS:
00010246
[120633.443292] RAX:
ffff880022907819
RBX:
ffff880022907818
RCX:
0000000000000000
[120633.443292] RDX:
ffff8800f7b13a80
RSI:
ffff8800f587eb48
RDI:
0000000000000000
[120633.443292] RBP:
ffff8800f7b13a60
R08:
0000000000000000
R09:
0000000000000004
[120633.443292] R10:
0000000000000000
R11:
ffff8800c4441000
R12:
ffff8800f587eb48
[120633.443292] R13:
ffff8800f58eaa00
R14:
ffff8800f413c000
R15:
0000000000000001
[120633.443292] FS:
00007fbef6e226e0
(0000) GS:
ffff880009200000
(0000) knlGS:
0000000000000000
[120633.443292] CS: 0010 DS: 0018 ES: 0018 CR0:
000000008005003b
[120633.443292] CR2:
0000000000000000
CR3:
00000000f7c53000
CR4:
00000000000006e0
[120633.443292] DR0:
0000000000000000
DR1:
0000000000000000
DR2:
0000000000000000
[120633.443292] DR3:
0000000000000000
DR6:
00000000ffff0ff0
DR7:
0000000000000400
[120633.443292] Process ceph-msgr/1 (pid: 3023, threadinfo
ffff8800f7b12000
, task
ffff8800f5858b40
)
[120633.443292] Stack:
[120633.443292]
ffff8800f413c000
ffff8800f587e9c0
ffff8800f7b13a80
ffffffffa0098a86
[120633.443292] <0>
00000000000006f1
0000000000000000
ffff8800f7b13af0
ffffffffa009959b
[120633.443292] <0>
ffff8800f413c000
ffff880022a68400
ffff880022a68400
ffff8800f587e9c0
[120633.443292] Call Trace:
[120633.443292] [<
ffffffffa0098a86
>] __remove_osd+0x4d/0xbc [ceph]
[120633.443292] [<
ffffffffa009959b
>] __map_osds+0x199/0x4fa [ceph]
[120633.443292] [<
ffffffffa00999f4
>] ? __send_request+0xf8/0x186 [ceph]
[120633.443292] [<
ffffffffa0099beb
>] kick_requests+0x169/0x3cb [ceph]
[120633.443292] [<
ffffffffa009a8c1
>] ceph_osdc_handle_map+0x370/0x522 [ceph]
Since we're probably screwed anyway if a small kmalloc is
failing, don't bother with trying to be clever here.
Signed-off-by: Sage Weil <sage@newdream.net>
No differences found