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;
}
*/
return -ENOSYS;
}
+ case RING_BUFFER_FLUSH_EMPTY: /* Fall-through. */
case RING_BUFFER_FLUSH:
{
struct lttng_metadata_stream *stream = filp->private_data;
return put_u64(stream->version, arg);
}
- case RING_BUFFER_SNAPSHOT:
- {
- /*
- * Force the buffer to quiescent so the ring buffer
- * don't attempt to perform a SWITCH_FLUSH, which would
- * desynchronize the client accounting of the amount of
- * data available in the buffer from the ring buffer
- * view.
- */
- buf->quiescent = true;
- break;
- }
default:
break;
}
*/
return -ENOSYS;
}
+ case RING_BUFFER_FLUSH_EMPTY: /* Fall-through. */
case RING_BUFFER_FLUSH:
{
struct lttng_metadata_stream *stream = filp->private_data;
return put_u64(stream->version, arg);
}
- case RING_BUFFER_SNAPSHOT:
- {
- /*
- * Force the buffer to quiescent so the ring buffer
- * don't attempt to perform a SWITCH_FLUSH, which would
- * desynchronize the client accounting of the amount of
- * data available in the buffer from the ring buffer
- * view.
- */
- buf->quiescent = true;
- break;
- }
default:
break;
}
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)