fops = <tng_metadata_fops;
break;
}
-
+
chan_file = anon_inode_getfile("[lttng_channel]",
fops,
NULL, O_RDWR);
return lttng_session_list_tracker_pids(session);
case LTTNG_KERNEL_SESSION_METADATA_REGEN:
return lttng_session_metadata_regenerate(session);
+ case LTTNG_KERNEL_SESSION_STATEDUMP:
+ return lttng_session_statedump(session);
default:
return -ENOIOCTLCMD;
}
goto notransport;
}
- if (!lttng_kref_get(&session->metadata_cache->refcount))
+ if (!lttng_kref_get(&session->metadata_cache->refcount)) {
+ ret = -EOVERFLOW;
goto kref_error;
+ }
+
ret = lttng_abi_create_stream_fd(channel_file, stream_priv,
<tng_metadata_ring_buffer_file_operations);
if (ret < 0)
lttng_clock_ref();
lttng_proc_dentry = proc_create_data("lttng", S_IRUSR | S_IWUSR, NULL,
<tng_fops, NULL);
-
+
if (!lttng_proc_dentry) {
printk(KERN_ERR "Error creating LTTng control file\n");
ret = -ENOMEM;