X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttng-abi.c;h=02918114252d76071d9c51786f9aa955ad9fdeab;hb=b7150b71f0b34c5412d77b7c25bc5b210d5cef87;hp=64af55fb24938db7491a39483dd2071d0c7ede3d;hpb=e6e65fcdf8fa05271dc21392cb56091d5c2eeb81;p=lttng-modules.git diff --git a/lttng-abi.c b/lttng-abi.c index 64af55fb..02918114 100644 --- a/lttng-abi.c +++ b/lttng-abi.c @@ -841,6 +841,7 @@ int lttng_abi_open_metadata_stream(struct file *channel_file) metadata_stream->priv = buf; stream_priv = metadata_stream; metadata_stream->transport = channel->transport; + mutex_init(&metadata_stream->lock); /* * Since life-time of metadata cache differs from that of @@ -924,15 +925,23 @@ int lttng_abi_create_event(struct file *channel_file, atomic_long_inc(&channel_file->f_count); break; case LTTNG_KERNEL_SYSCALL: - /* - * Only all-syscall tracing supported for now. - */ - if (event_param->name[0] != '\0') - return -EINVAL; ret = lttng_syscalls_register(channel, NULL); if (ret) goto fd_error; event_fd = 0; + if (event_param->u.syscall.disable) { + ret = lttng_syscall_filter_disable(channel, + event_param->name[0] == '\0' ? + NULL : event_param->name); + if (ret) + goto fd_error; + } else { + ret = lttng_syscall_filter_enable(channel, + event_param->name[0] == '\0' ? + NULL : event_param->name); + if (ret) + goto fd_error; + } break; } return event_fd;