From mboxrd@z Thu Jan 1 00:00:00 1970 From: compudj@krystal.dyndns.org (Mathieu Desnoyers) Date: Wed, 18 Feb 2009 22:14:14 -0500 Subject: [ltt-dev] [PATCH v3] lttng: remove ltt root directory if it's no needed In-Reply-To: <499CB865.6080307@cn.fujitsu.com> References: <20090218082858.GB6658@Krystal> <499BF60B.7090603@cn.fujitsu.com> <20090219084728.9547.A69D9226@jp.fujitsu.com> <499CB2F4.50805@cn.fujitsu.com> <499CB865.6080307@cn.fujitsu.com> Message-ID: <20090219031414.GC6922@Krystal> * Gui Jianfeng (guijianfeng at cn.fujitsu.com) wrote: > We have to cleanup the lttng's root directory of debugfs if > there is nobody uses it any more. Because any related lttng > modules are unloaded, no need to keep this directory. > > This patch is based on 2.6.29-rc3-lttng-0.92. > Merged, thanks ! Mathieu > Signed-off-by: Gui Jianfeng > --- > include/linux/ltt-core.h | 1 + > ltt/ltt-core.c | 10 ++++++++++ > ltt/ltt-trace-control.c | 2 ++ > ltt/ltt-userspace-event.c | 1 + > 4 files changed, 14 insertions(+), 0 deletions(-) > > diff --git a/include/linux/ltt-core.h b/include/linux/ltt-core.h > index bc244c6..28394cb 100644 > --- a/include/linux/ltt-core.h > +++ b/include/linux/ltt-core.h > @@ -30,6 +30,7 @@ extern struct ltt_traces ltt_traces; > /* > * get dentry of ltt's root dir > */ > +void put_ltt_root(void); > struct dentry *get_ltt_root(void); > > /* Keep track of trap nesting inside LTT */ > diff --git a/ltt/ltt-core.c b/ltt/ltt-core.c > index 18db91d..314750b 100644 > --- a/ltt/ltt-core.c > +++ b/ltt/ltt-core.c > @@ -23,6 +23,16 @@ static DEFINE_MUTEX(ltt_traces_mutex); > > /* dentry of ltt's root dir */ > static struct dentry *ltt_root_dentry; > + > +void put_ltt_root(void) > +{ > + if (ltt_root_dentry && list_empty(<t_root_dentry->d_subdirs)) { > + debugfs_remove(ltt_root_dentry); > + ltt_root_dentry = NULL; > + } > +} > +EXPORT_SYMBOL_GPL(put_ltt_root); > + > struct dentry *get_ltt_root(void) > { > if (!ltt_root_dentry) { > diff --git a/ltt/ltt-trace-control.c b/ltt/ltt-trace-control.c > index 16502a2..d7c9119 100644 > --- a/ltt/ltt-trace-control.c > +++ b/ltt/ltt-trace-control.c > @@ -740,6 +740,7 @@ err_create_destroy_trace_file: > err_create_setup_trace_file: > debugfs_remove(ltt_control_dir); > err_create_control_dir: > + put_ltt_root(); > err_no_root: > return err; > } > @@ -759,6 +760,7 @@ static void __exit ltt_trace_control_exit(void) > debugfs_remove(ltt_setup_trace_file); > debugfs_remove(ltt_destroy_trace_file); > debugfs_remove_recursive(ltt_control_dir); > + put_ltt_root(); > } > > module_init(ltt_trace_control_init); > diff --git a/ltt/ltt-userspace-event.c b/ltt/ltt-userspace-event.c > index 385bd3b..a48f336 100644 > --- a/ltt/ltt-userspace-event.c > +++ b/ltt/ltt-userspace-event.c > @@ -118,6 +118,7 @@ err_no_root: > static void __exit ltt_userspace_exit(void) > { > debugfs_remove(ltt_event_file); > + put_ltt_root(); > } > > module_init(ltt_userspace_init); > -- > 1.5.4.rc3 > > > > _______________________________________________ > ltt-dev mailing list > ltt-dev at lists.casi.polymtl.ca > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev > -- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68