* session, we need to keep our own reference on the transport.
*/
if (!try_module_get(stream->transport->owner)) {
- printk(KERN_WARNING "LTT : Can't lock transport module.\n");
+ printk(KERN_WARNING "LTTng: Can't lock transport module.\n");
return -EBUSY;
}
return lib_ring_buffer_open(inode, file, buf);
struct lttng_metadata_stream *stream = file->private_data;
struct lib_ring_buffer *buf = stream->priv;
+ mutex_lock(&stream->metadata_cache->lock);
+ list_del(&stream->list);
+ mutex_unlock(&stream->metadata_cache->lock);
kref_put(&stream->metadata_cache->refcount, metadata_cache_destroy);
module_put(stream->transport->owner);
+ kfree(stream);
return lib_ring_buffer_release(inode, file, buf);
}
* session, we need to keep our own reference on the transport.
*/
if (!try_module_get(metadata_stream->transport->owner)) {
- printk(KERN_WARNING "LTT : Can't lock transport module.\n");
+ printk(KERN_WARNING "LTTng: Can't lock transport module.\n");
ret = -EINVAL;
goto notransport;
}
if (ret < 0)
goto fd_error;
+ mutex_lock(&session->metadata_cache->lock);
list_add(&metadata_stream->list,
&session->metadata_cache->metadata_stream);
+ mutex_unlock(&session->metadata_cache->lock);
return ret;
fd_error:
<tng_proc_ops, NULL);
if (!lttng_proc_dentry) {
- printk(KERN_ERR "Error creating LTTng control file\n");
+ printk(KERN_ERR "LTTng: Error creating control file\n");
ret = -ENOMEM;
goto error;
}