+ case RING_BUFFER_FLUSH:
+ {
+ struct lttng_metadata_stream *stream = filp->private_data;
+ struct lib_ring_buffer *buf = stream->priv;
+ struct channel *chan = buf->backend.chan;
+
+ /*
+ * Before doing the actual ring buffer flush, write up to one
+ * packet of metadata in the ring buffer.
+ */
+ ret = lttng_metadata_output_channel(stream, chan);
+ if (ret < 0)
+ goto err;
+ break;
+ }
+ 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;
+ }