tracing: Break out of tracing_wait_pipe() before wait_pipe() is called
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Tue, 29 Apr 2014 20:07:28 +0000 (16:07 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 29 Apr 2014 20:07:28 +0000 (16:07 -0400)
commitf4874261049e3abdd481359d82cafa5068369ebd
treeee81269a6086634c7ae04c18eba24fb717528590
parent8d1b065d47ff1424b1aef7a6aa605b467694c120
tracing: Break out of tracing_wait_pipe() before wait_pipe() is called

When reading from trace_pipe, if tracing is off but nothing was read
it should block. If something is read and tracing is off, then EOF
is returned. If tracing is on and there's nothing to read, it will block.

But because the check of whether tracing is off and something was read
is done after the block on the pipe, it is hit or miss if the EOF is
returned or not leading to inconsistent behavior.

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