lkml.org 
[lkml]   [2013]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 5/6] tracing: Introduce remove_event_file_dir()
    (2013/07/27 2:25), Oleg Nesterov wrote:
    > Preparation for the next patch. Extract the common code from
    > remove_event_from_tracers() and __trace_remove_event_dirs()
    > into the new helper, remove_event_file_dir().
    >
    > The patch looks more complicated than it actually is, it also
    > moves remove_subsystem() up to avoid the forward declaration.

    Looks good for me.

    Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

    Thanks!

    >
    > Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    > ---
    > kernel/trace/trace_events.c | 47 +++++++++++++++++++++----------------------
    > 1 files changed, 23 insertions(+), 24 deletions(-)
    >
    > diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
    > index 3de2aca..2a4f68a 100644
    > --- a/kernel/trace/trace_events.c
    > +++ b/kernel/trace/trace_events.c
    > @@ -409,11 +409,31 @@ static void put_system(struct ftrace_subsystem_dir *dir)
    > mutex_unlock(&event_mutex);
    > }
    >
    > +static void remove_subsystem(struct ftrace_subsystem_dir *dir)
    > +{
    > + if (!dir)
    > + return;
    > +
    > + if (!--dir->nr_events) {
    > + debugfs_remove_recursive(dir->entry);
    > + list_del(&dir->list);
    > + __put_system_dir(dir);
    > + }
    > +}
    > +
    > static void *event_file_data(struct file *filp)
    > {
    > return ACCESS_ONCE(file_inode(filp)->i_private);
    > }
    >
    > +static void remove_event_file_dir(struct ftrace_event_file *file)
    > +{
    > + list_del(&file->list);
    > + debugfs_remove_recursive(file->dir);
    > + remove_subsystem(file->system);
    > + kmem_cache_free(file_cachep, file);
    > +}
    > +
    > /*
    > * Open and update trace_array ref count.
    > * Must have the current trace_array passed to it.
    > @@ -1545,33 +1565,16 @@ event_create_dir(struct dentry *parent,
    > return 0;
    > }
    >
    > -static void remove_subsystem(struct ftrace_subsystem_dir *dir)
    > -{
    > - if (!dir)
    > - return;
    > -
    > - if (!--dir->nr_events) {
    > - debugfs_remove_recursive(dir->entry);
    > - list_del(&dir->list);
    > - __put_system_dir(dir);
    > - }
    > -}
    > -
    > static void remove_event_from_tracers(struct ftrace_event_call *call)
    > {
    > struct ftrace_event_file *file;
    > struct trace_array *tr;
    >
    > do_for_each_event_file_safe(tr, file) {
    > -
    > if (file->event_call != call)
    > continue;
    >
    > - list_del(&file->list);
    > - debugfs_remove_recursive(file->dir);
    > - remove_subsystem(file->system);
    > - kmem_cache_free(file_cachep, file);
    > -
    > + remove_event_file_dir(file);
    > /*
    > * The do_for_each_event_file_safe() is
    > * a double loop. After finding the call for this
    > @@ -2301,12 +2304,8 @@ __trace_remove_event_dirs(struct trace_array *tr)
    > {
    > struct ftrace_event_file *file, *next;
    >
    > - list_for_each_entry_safe(file, next, &tr->events, list) {
    > - list_del(&file->list);
    > - debugfs_remove_recursive(file->dir);
    > - remove_subsystem(file->system);
    > - kmem_cache_free(file_cachep, file);
    > - }
    > + list_for_each_entry_safe(file, next, &tr->events, list)
    > + remove_event_file_dir(file);
    > }
    >
    > static void
    >


    --
    Masami HIRAMATSU
    IT Management Research Dept. Linux Technology Center
    Hitachi, Ltd., Yokohama Research Laboratory
    E-mail: masami.hiramatsu.pt@hitachi.com




    \
     
     \ /
      Last update: 2013-07-30 03:41    [W:4.450 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site