From mboxrd@z Thu Jan 1 00:00:00 1970 From: laijs@cn.fujitsu.com (Lai Jiangshan) Date: Tue, 13 Jan 2009 17:09:51 +0800 Subject: [ltt-dev] [PATCH 13/13] enable text output for ltt-relay-locked Message-ID: <496C5A5F.2010602@cn.fujitsu.com> all done, enable text output for ltt-relay-locked Signed-off-by: Lai Jiangshan --- ltt-relay-locked.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ltt/ltt-relay-locked.c b/ltt/ltt-relay-locked.c index d662303..a17e2d5 --- a/ltt/ltt-relay-locked.c +++ b/ltt/ltt-relay-locked.c @@ -697,6 +715,7 @@ static void ltt_relay_print_buffer_errors(struct ltt_channel_struct *ltt_chan, static void ltt_relay_remove_dirs(struct ltt_trace_struct *trace) { + ltt_txt_remove_dir(trace); debugfs_remove(trace->dentry.trace_root); } @@ -807,9 +826,16 @@ static int ltt_relay_create_channel(const char *trace_name, goto relay_open_error; } + ltt_chan->buf_access_ops = <t_channel_buf_accesser; + ltt_chan->txt_entry = ltt_txt_create(trace, ltt_chan); + if (!ltt_chan->txt_entry) + goto relay_txt_error; + err = 0; goto end; +relay_txt_error: + ltt_relay_close(ltt_chan->trans_channel_data); relay_open_error: percpu_free(ltt_chan->buf); ltt_percpu_alloc_error: @@ -821,11 +847,15 @@ end: static int ltt_relay_create_dirs(struct ltt_trace_struct *new_trace) { + if (ltt_txt_create_dir(new_trace)) + return EEXIST; + new_trace->dentry.trace_root = debugfs_create_dir(new_trace->trace_name, ltt_root_dentry); if (new_trace->dentry.trace_root == NULL) { printk(KERN_ERR "LTT : Trace directory name %s already taken\n", new_trace->trace_name); + ltt_txt_remove_dir(new_trace); return EEXIST; } @@ -889,6 +919,7 @@ static void ltt_relay_remove_channel(struct ltt_channel_struct *channel) { struct rchan *rchan = channel->trans_channel_data; + ltt_txt_remove(channel, channel->txt_entry); ltt_relay_close(rchan); kref_put(&channel->kref, ltt_relay_release_channel); } @@ -1308,6 +1313,9 @@ static notrace int ltt_relay_reserve_slot(struct ltt_trace_struct *trace, struct ltt_reserve_switch_offsets offsets; unsigned long flags; + if (atomic_read(<t_channel->channel_disabled)) + return -EBUSY; + raw_local_irq_save(flags); __raw_spin_lock(<t_buf->lock);