projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b8b4ead
)
ocfs2: o2hb: fix double free bug
author
Junxiao Bi
<junxiao.bi@oracle.com>
Fri, 25 Mar 2016 21:20:50 +0000
(14:20 -0700)
committer
Linus Torvalds
<torvalds@linux-foundation.org>
Fri, 25 Mar 2016 23:37:42 +0000
(16:37 -0700)
This is a regression issue and caused the following kernel panic when do
ocfs2 multiple test.
BUG: unable to handle kernel paging request at
00000002000800c0
IP: [<
ffffffff81192978
>] kmem_cache_alloc+0x78/0x160
PGD
7bbe5067
PUD 0
Oops: 0000 [#1] SMP
Modules linked in: ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager ocfs2_stackglue iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi xen_kbdfront xen_netfront xen_fbfront xen_blkfront
CPU: 2 PID: 4044 Comm: mpirun Not tainted 4.5.0-rc5-next-
20160225
#1
Hardware name: Xen HVM domU, BIOS 4.3.1OVM 05/14/2014
task:
ffff88007a521a80
ti:
ffff88007aed0000
task.ti:
ffff88007aed0000
RIP: 0010:[<
ffffffff81192978
>] [<
ffffffff81192978
>] kmem_cache_alloc+0x78/0x160
RSP: 0018:
ffff88007aed3a48
EFLAGS:
00010282
RAX:
0000000000000000
RBX:
0000000000000000
RCX:
0000000000001991
RDX:
0000000000001990
RSI:
00000000024000c0
RDI:
000000000001b330
RBP:
ffff88007aed3a98
R08:
ffff88007d29b330
R09:
00000002000800c0
R10:
0000000c51376d87
R11:
ffff8800792cac38
R12:
ffff88007cc30f00
R13:
00000000024000c0
R14:
ffffffff811b053f
R15:
ffff88007aed3ce7
FS:
0000000000000000
(0000) GS:
ffff88007d280000
(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
00000002000800c0
CR3:
000000007aeb2000
CR4:
00000000000406e0
Call Trace:
__d_alloc+0x2f/0x1a0
d_alloc+0x17/0x80
lookup_dcache+0x8a/0xc0
path_openat+0x3c3/0x1210
do_filp_open+0x80/0xe0
do_sys_open+0x110/0x200
SyS_open+0x19/0x20
do_syscall_64+0x72/0x230
entry_SYSCALL64_slow_path+0x25/0x25
Code: 05 e6 77 e7 7e 4d 8b 08 49 8b 40 10 4d 85 c9 0f 84 dd 00 00 00 48 85 c0 0f 84 d4 00 00 00 49 63 44 24 20 49 8b 3c 24 48 8d 4a 01 <49> 8b 1c 01 4c 89 c8 65 48 0f c7 0f 0f 94 c0 3c 01 75 b6 49 63
RIP kmem_cache_alloc+0x78/0x160
CR2:
00000002000800c0
---[ end trace
823969e602e4aaac
]---
Fixes: a4a1dfa4bb8b("ocfs2/cluster: fix memory leak in o2hb_region_release")
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Joseph Qi <joseph.qi@huawei.com>
Cc: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ocfs2/cluster/heartbeat.c
patch
|
blob
|
history
diff --git
a/fs/ocfs2/cluster/heartbeat.c
b/fs/ocfs2/cluster/heartbeat.c
index ef6a2ec494def2cf0f4584c2d3d7c5eafa485b23..bd15929b5f9254e62348ff5718a860e37a202e82 100644
(file)
--- a/
fs/ocfs2/cluster/heartbeat.c
+++ b/
fs/ocfs2/cluster/heartbeat.c
@@
-1444,8
+1444,8
@@
static void o2hb_region_release(struct config_item *item)
debugfs_remove(reg->hr_debug_dir);
kfree(reg->hr_db_livenodes);
kfree(reg->hr_db_regnum);
- kfree(reg->hr_d
ebug
_elapsed_time);
- kfree(reg->hr_d
ebug
_pinned);
+ kfree(reg->hr_d
b
_elapsed_time);
+ kfree(reg->hr_d
b
_pinned);
spin_lock(&o2hb_live_lock);
list_del(®->hr_all_item);