X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt-debugfs-abi.c;h=7c9f88ab98d0ed98bf26a0018208d56183b57963;hb=cd4bd11fe2d3232089186a5b9b021b7cb504a8fb;hp=99b4196616419e754544e46469da5edba4f9610a;hpb=881833e349e275ac324fc3abf8a34d76f91047ea;p=lttng-modules.git diff --git a/ltt-debugfs-abi.c b/ltt-debugfs-abi.c index 99b41966..7c9f88ab 100644 --- a/ltt-debugfs-abi.c +++ b/ltt-debugfs-abi.c @@ -123,31 +123,31 @@ static void lttng_metadata_create_events(struct file *channel_file) { struct ltt_channel *channel = channel_file->private_data; - char *event_name = "lttng-metadata"; + char *event_name = "lttng_metadata"; + const struct lttng_event_desc *event_desc; struct ltt_event *event; int ret; - void *probe; - probe = ltt_probe_get(event_name); - if (!probe) { + event_desc = ltt_event_get(event_name); + if (!event_desc) { ret = -ENOENT; - goto probe_error; + goto get_error; } /* * 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, INSTRUM_TRACEPOINTS, - probe, NULL); + event_desc, NULL); if (!event) { - goto event_error; + goto create_error; ret = -EEXIST; } return; -event_error: - ltt_probe_put(probe); -probe_error: +create_error: + ltt_event_put(event_desc); +get_error: WARN_ON(1); return; /* not allowed to return error */ } @@ -210,8 +210,10 @@ int lttng_abi_create_channel(struct file *session_file, chan->file = chan_file; chan_file->private_data = chan; fd_install(chan_fd, chan_file); - if (channel_type == METADATA_CHANNEL) + if (channel_type == METADATA_CHANNEL) { lttng_metadata_create_events(chan_file); + session->metadata = chan; + } /* The channel created holds a reference on the session */ atomic_long_inc(&session_file->f_count); @@ -338,12 +340,12 @@ int lttng_abi_create_event(struct file *channel_file, struct lttng_event __user *uevent_param) { struct ltt_channel *channel = channel_file->private_data; + const struct lttng_event_desc *event_desc; struct ltt_event *event; char *event_name; struct lttng_event event_param; int event_fd, ret; struct file *event_file; - void *probe; if (copy_from_user(&event_param, uevent_param, sizeof(event_param))) return -EFAULT; @@ -356,10 +358,10 @@ int lttng_abi_create_event(struct file *channel_file, } event_name[PATH_MAX - 1] = '\0'; - probe = ltt_probe_get(event_name); - if (!probe) { + event_desc = ltt_event_get(event_name); + if (!event_desc) { ret = -ENOENT; - goto probe_error; + goto get_error; } event_fd = get_unused_fd(); if (event_fd < 0) { @@ -378,7 +380,7 @@ int lttng_abi_create_event(struct file *channel_file, * invariant for the rest of the session. */ event = ltt_event_create(channel, event_name, event_param.itype, - probe, NULL); + event_desc, NULL); if (!event) { goto event_error; ret = -EEXIST; @@ -395,8 +397,8 @@ event_error: file_error: put_unused_fd(event_fd); fd_error: - ltt_probe_put(probe); -probe_error: + ltt_event_put(event_desc); +get_error: name_error: kfree(event_name); return ret;