Zdenek Kabelac
48c0d4d4c0
Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs
Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs
introduced in commit 1d54ad6da9.
Release kobject also in case the request_fn is NULL.
Problem was noticed via kmemleak backtrace when some sysfs entries were
note properly destroyed during device removal:
unreferenced object 0xffff88001aa76640 (size 80):
comm "lvcreate", pid 2120, jiffies 4294885144
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 f0 65 a7 1a 00 88 ff ff .........e......
90 66 a7 1a 00 88 ff ff 86 1d 53 81 ff ff ff ff .f........S.....
backtrace:
[<ffffffff813f9cc6>] kmemleak_alloc+0x26/0x60
[<ffffffff8111d693>] kmem_cache_alloc+0x133/0x1c0
[<ffffffff81195891>] sysfs_new_dirent+0x41/0x120
[<ffffffff81194b0c>] sysfs_add_file_mode+0x3c/0xb0
[<ffffffff81197c81>] internal_create_group+0xc1/0x1a0
[<ffffffff81197d93>] sysfs_create_group+0x13/0x20
[<ffffffff810d8004>] blk_trace_init_sysfs+0x14/0x20
[<ffffffff8123f45c>] blk_register_queue+0x3c/0xf0
[<ffffffff812447e4>] add_disk+0x94/0x160
[<ffffffffa00d8b08>] dm_create+0x598/0x6e0 [dm_mod]
[<ffffffffa00de951>] dev_create+0x51/0x350 [dm_mod]
[<ffffffffa00de823>] ctl_ioctl+0x1a3/0x240 [dm_mod]
[<ffffffffa00de8f2>] dm_compat_ctl_ioctl+0x12/0x20 [dm_mod]
[<ffffffff81177bfd>] compat_sys_ioctl+0xcd/0x4f0
[<ffffffff81036ed8>] sysenter_dispatch+0x7/0x2c
[<ffffffffffffffff>] 0xffffffffffffffff
Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
Reviewed-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
|
2009-10-01 21:15:46 +02:00 |
| .. |
|
blktrace.c
|
Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs
|
2009-10-01 21:15:46 +02:00 |
|
ftrace.c
|
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2009-09-26 10:13:54 -07:00 |
|
Kconfig
|
trivial: Fix duplicated word "options" in comment
|
2009-09-21 15:14:58 +02:00 |
|
kmemtrace.c
|
tracing: remove users of tracing_reset
|
2009-09-04 12:12:39 -04:00 |
|
Makefile
|
tracing, perf: Convert the power tracer into an event tracer
|
2009-09-19 11:42:12 +02:00 |
|
power-traces.c
|
tracing, perf: Convert the power tracer into an event tracer
|
2009-09-19 11:42:12 +02:00 |
|
ring_buffer.c
|
includecheck fix: kernel/trace, ring_buffer.c
|
2009-09-20 16:58:56 +05:30 |
|
ring_buffer_benchmark.c
|
ring-buffer: have benchmark test print to trace buffer
|
2009-06-17 17:01:09 -04:00 |
|
trace.c
|
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2009-09-26 10:13:54 -07:00 |
|
trace.h
|
tracing, perf: Convert the power tracer into an event tracer
|
2009-09-19 11:42:12 +02:00 |
|
trace_boot.c
|
tracing: add filter event logic to special, mmiotrace and boot tracers
|
2009-09-12 23:34:04 -04:00 |
|
trace_branch.c
|
|
|
|
trace_clock.c
|
tracing: optimize global_trace_clock cachelines
|
2009-09-15 12:24:22 -04:00 |
|
trace_entries.h
|
tracing, perf: Convert the power tracer into an event tracer
|
2009-09-19 11:42:12 +02:00 |
|
trace_event_profile.c
|
tracing: Export trace_profile_buf symbols
|
2009-09-20 19:15:57 +02:00 |
|
trace_events.c
|
tracing: Check the return value of trace_get_user()
|
2009-09-22 10:28:55 +02:00 |
|
trace_events_filter.c
|
tracing: move PRED macros to trace_events_filter.c
|
2009-09-09 23:54:11 -04:00 |
|
trace_export.c
|
tracing: remove some unused macros
|
2009-09-14 11:43:24 -04:00 |
|
trace_functions.c
|
tracing: switch function prints from %pf to %ps
|
2009-09-17 15:53:40 -04:00 |
|
trace_functions_graph.c
|
tracing: switch function prints from %pf to %ps
|
2009-09-17 15:53:40 -04:00 |
|
trace_hw_branches.c
|
trivial: remove unnecessary semicolons
|
2009-09-21 15:14:58 +02:00 |
|
trace_irqsoff.c
|
tracing: do not update tracing_max_latency when tracer is stopped
|
2009-09-12 21:45:17 -04:00 |
|
trace_mmiotrace.c
|
tracing: add filter event logic to special, mmiotrace and boot tracers
|
2009-09-12 23:34:04 -04:00 |
|
trace_nop.c
|
|
|
|
trace_output.c
|
tracing: consolidate code between trace_output.c and trace_function_graph.c
|
2009-09-11 14:24:13 -04:00 |
|
trace_output.h
|
tracing: consolidate code between trace_output.c and trace_function_graph.c
|
2009-09-11 14:24:13 -04:00 |
|
trace_printk.c
|
tracing: Remove markers
|
2009-09-18 21:22:08 +02:00 |
|
trace_sched_switch.c
|
tracing: pass around ring buffer instead of tracer
|
2009-09-04 18:59:39 -04:00 |
|
trace_sched_wakeup.c
|
tracing: do not update tracing_max_latency when tracer is stopped
|
2009-09-12 21:45:17 -04:00 |
|
trace_selftest.c
|
tracing/function-graph-tracer: Move graph event insertion helpers in the graph tracer file
|
2009-08-06 07:28:06 +02:00 |
|
trace_selftest_dynamic.c
|
|
|
|
trace_stack.c
|
sysctl: remove "struct file *" argument of ->proc_handler
|
2009-09-24 07:21:04 -07:00 |
|
trace_stat.c
|
trace_stat: Fix missing entry in stat file
|
2009-08-17 11:25:09 +02:00 |
|
trace_stat.h
|
tracing/stat: Add stat_release() callback
|
2009-07-10 12:14:05 +02:00 |
|
trace_syscalls.c
|
Merge branch 'perfcounters-rename-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2009-09-21 09:15:07 -07:00 |
|
trace_sysprof.c
|
Merge branch 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2009-06-15 10:06:19 -07:00 |
|
trace_workqueue.c
|
tracing/workqueues: Add refcnt to struct cpu_workqueue_stats
|
2009-07-10 12:14:07 +02:00 |