fix: version ranges for ext4_discard_preallocations and writeback_queue_io
[lttng-modules.git] / src / lttng-abi.c
index 312372fcb9bbc5d83bcc59011ad5834e6131d626..198987bd5a74f25775ef0e269699a11182b6bdc0 100644 (file)
@@ -1080,7 +1080,7 @@ int lttng_metadata_ring_buffer_open(struct inode *inode, struct file *file)
         * 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);
@@ -1092,8 +1092,12 @@ int lttng_metadata_ring_buffer_release(struct inode *inode, struct file *file)
        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);
 }
 
@@ -1230,7 +1234,7 @@ int lttng_abi_open_metadata_stream(struct file *channel_file)
         * 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;
        }
@@ -1245,8 +1249,10 @@ int lttng_abi_open_metadata_stream(struct file *channel_file)
        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:
@@ -2012,7 +2018,7 @@ int __init lttng_abi_init(void)
                                        &lttng_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;
        }
This page took 0.024225 seconds and 4 git commands to generate.