tracing: Keep overwrite in sync between regular and snapshot buffers
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Thu, 14 Mar 2013 18:20:54 +0000 (14:20 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 15 Mar 2013 03:40:15 +0000 (23:40 -0400)
Changing the overwrite mode for the ring buffer via the trace
option only sets the normal buffer. But the snapshot buffer could
swap with it, and then the snapshot would be in non overwrite mode
and the normal buffer would be in overwrite mode, even though the
option flag states otherwise.

Keep the two buffers overwrite modes in sync.

Cc: stable@vger.kernel.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.c

index 00daf5f8c50b84264a93470dffa7511086ad3439..02debabe9ed408eb011e2475cd22865e4e1a80b1 100644 (file)
@@ -2895,8 +2895,12 @@ static void set_tracer_flags(unsigned int mask, int enabled)
        if (mask == TRACE_ITER_RECORD_CMD)
                trace_event_enable_cmd_record(enabled);
 
-       if (mask == TRACE_ITER_OVERWRITE)
+       if (mask == TRACE_ITER_OVERWRITE) {
                ring_buffer_change_overwrite(global_trace.buffer, enabled);
+#ifdef CONFIG_TRACER_MAX_TRACE
+               ring_buffer_change_overwrite(max_tr.buffer, enabled);
+#endif
+       }
 
        if (mask == TRACE_ITER_PRINTK)
                trace_printk_start_stop_comm(enabled);