tracing: Change tracing_fops/snapshot_fops to rely on tracing_get_cpu()
authorOleg Nesterov <oleg@redhat.com>
Tue, 23 Jul 2013 15:26:10 +0000 (17:26 +0200)
committerSteven Rostedt <rostedt@rostedt.homelinux.com>
Wed, 24 Jul 2013 15:22:53 +0000 (11:22 -0400)
commit6484c71cbc170634fa131b6d022d86d61686b88b
tree68f696f4985f368a2fa7f93a2d474fea2c7585db
parent0bc392ee46d0fd8e6b678457ef71f074f19a03c5
tracing: Change tracing_fops/snapshot_fops to rely on tracing_get_cpu()

tracing_open() and tracing_snapshot_open() are racy, the memory
inode->i_private points to can be already freed.

Convert these last users of "inode->i_private == trace_cpu" to
use "i_private = trace_array" and rely on tracing_get_cpu().

v2: incorporate the fix from Steven, tracing_release() must not
    blindly dereference file->private_data unless we know that
    the file was opened for reading.

Link: http://lkml.kernel.org/r/20130723152610.GA23737@redhat.com
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.c