]> git.baikalelectronics.ru Git - kernel.git/commit
tracing: fix splice return too large
authorLai Jiangshan <laijs@cn.fujitsu.com>
Thu, 2 Apr 2009 07:17:08 +0000 (15:17 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 10 Apr 2009 10:44:46 +0000 (12:44 +0200)
commit0abd2164f551f80e08735cf435d183a408b8bb4c
treea88753a44117b9dcfdd65bb0d0572eb5b945e961
parentbede93a133e31bba6349ac409f8116574fe75f06
tracing: fix splice return too large

I got these from strace:

 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 12288
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 16384
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192
 splice(0x3, 0, 0x5, 0, 0x1000, 0x1) = 8192

I wanted to splice_read 4096 bytes, but it returns 8192 or larger.

It is because the return value of tracing_buffers_splice_read()
does not include "zero out any left over data" bytes.

But tracing_buffers_read() includes these bytes, we make them
consistent.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D46674.9030804@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/trace/trace.c