Re: PATCH? trace_remove_event_call() should fail if call is active

From: Oleg Nesterov
Date: Wed Jul 03 2013 - 19:16:44 EST


On 07/03, Steven Rostedt wrote:
>
> On Wed, 2013-07-03 at 16:34 -0400, Steven Rostedt wrote:
> > OK, what about the below patch, followed by an updated version of your
> > patch. I'll send that as a reply to this one.
>
> This is a modification of your patch:

Thanks.

> If you like it, please add a proper change log and SOB tag. Oh, and we
> need to still update trace_kprobes.c

and trace_uprobes.c. Please find the changelog below.


tracing: trace_remove_event_call() should fail if call/file is in use

Change trace_remove_event_call(call) to return the error if this
call is active. This is what the callers assume but can't verify
outside of the tracing locks. Both trace_kprobe.c/trace_uprobe.c
need the additional changes, unregister_trace_probe() should abort
if trace_remove_event_call() fails.

We also check TRACE_EVENT_FL_REF_MASK to ensure that nobody opened
the files we are going to remove, these means that nobody can access
the soon-to-be-freed ftrace_event_file/call via filp->private_data.

Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/