void lttng_metadata_create_events(struct file *channel_file)
{
struct ltt_channel *channel = channel_file->private_data;
+ static struct lttng_kernel_event metadata_params = {
+ .instrumentation = LTTNG_KERNEL_TRACEPOINTS,
+ .name = "lttng_metadata",
+ };
char *event_name = "lttng_metadata";
struct ltt_event *event;
int ret;
* We tolerate no failure path after event creation. It will stay
* invariant for the rest of the session.
*/
- event = ltt_event_create(channel, event_name, LTTNG_KERNEL_TRACEPOINTS,
- NULL);
+ event = ltt_event_create(channel, event_name, &metadata_params, NULL);
if (!event) {
goto create_error;
ret = -EEXIST;
chan_file->private_data = chan;
fd_install(chan_fd, chan_file);
if (channel_type == METADATA_CHANNEL) {
- lttng_metadata_create_events(chan_file);
session->metadata = chan;
+ lttng_metadata_create_events(chan_file);
}
/* The channel created holds a reference on the session */
{
struct ltt_event *event = file->private_data;
- if (event) {
- ltt_event_unregister(event);
+ if (event)
fput(event->chan->file);
- }
return 0;
}