X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;ds=sidebyside;f=lttng-events.c;h=bcf59da1df5d8916ae7e85c01f9e5a6639743d25;hb=601252cfa07fa29f15c769fe3f4cf4419311d6f9;hp=f2a9a8a58498f1f1a833e8ec1b97e76093391982;hpb=64af2437213d40fdb1f386ffcad2c83ed5c11185;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index f2a9a8a5..bcf59da1 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -213,6 +213,16 @@ void lttng_session_destroy(struct lttng_session *session) kfree(session); } +int lttng_session_statedump(struct lttng_session *session) +{ + int ret; + + mutex_lock(&sessions_mutex); + ret = lttng_statedump_start(session); + mutex_unlock(&sessions_mutex); + return ret; +} + int lttng_session_enable(struct lttng_session *session) { int ret = 0; @@ -244,8 +254,10 @@ int lttng_session_enable(struct lttng_session *session) lttng_session_sync_enablers(session); /* Clear each stream's quiescent state. */ - list_for_each_entry(chan, &session->chan, list) - lib_ring_buffer_clear_quiescent_channel(chan->chan); + list_for_each_entry(chan, &session->chan, list) { + if (chan->channel_type != METADATA_CHANNEL) + lib_ring_buffer_clear_quiescent_channel(chan->chan); + } ACCESS_ONCE(session->active) = 1; ACCESS_ONCE(session->been_active) = 1; @@ -279,8 +291,10 @@ int lttng_session_disable(struct lttng_session *session) lttng_session_sync_enablers(session); /* Set each stream's quiescent state. */ - list_for_each_entry(chan, &session->chan, list) - lib_ring_buffer_set_quiescent_channel(chan->chan); + list_for_each_entry(chan, &session->chan, list) { + if (chan->channel_type != METADATA_CHANNEL) + lib_ring_buffer_set_quiescent_channel(chan->chan); + } end: mutex_unlock(&sessions_mutex); return ret;