diff options
author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2009-04-02 03:17:04 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-10 06:44:44 -0400 |
commit | c7625a555f55d7ae49236cde551786c88f5a5ce1 (patch) | |
tree | 4cca942d46412d708945f574ef4c4b87adf92d1d /kernel | |
parent | ddd538f3e6a1a4bec2f6942f83a753263e6577b4 (diff) |
tracing: update file->f_pos when splice(2) it
Impact: Cleanup
These two lines:
if (unlikely(*ppos))
return -ESPIPE;
in tracing_buffers_splice_read() are not needed, VFS layer
has disabled seek(2).
We remove these two lines, and then we can update file->f_pos.
And tracing_buffers_read() updates file->f_pos, this fix
make tracing_buffers_splice_read() updates file->f_pos too.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <srostedt@redhat.com>
LKML-Reference: <49D46670.4010503@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/trace.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8e189ffb899a..94629760dabf 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -3428,13 +3428,6 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos, | |||
3428 | int size, i; | 3428 | int size, i; |
3429 | size_t ret; | 3429 | size_t ret; |
3430 | 3430 | ||
3431 | /* | ||
3432 | * We can't seek on a buffer input | ||
3433 | */ | ||
3434 | if (unlikely(*ppos)) | ||
3435 | return -ESPIPE; | ||
3436 | |||
3437 | |||
3438 | for (i = 0; i < PIPE_BUFFERS && len; i++, len -= size) { | 3431 | for (i = 0; i < PIPE_BUFFERS && len; i++, len -= size) { |
3439 | struct page *page; | 3432 | struct page *page; |
3440 | int r; | 3433 | int r; |
@@ -3474,6 +3467,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos, | |||
3474 | spd.partial[i].offset = 0; | 3467 | spd.partial[i].offset = 0; |
3475 | spd.partial[i].private = (unsigned long)ref; | 3468 | spd.partial[i].private = (unsigned long)ref; |
3476 | spd.nr_pages++; | 3469 | spd.nr_pages++; |
3470 | *ppos += size; | ||
3477 | } | 3471 | } |
3478 | 3472 | ||
3479 | spd.nr_pages = i; | 3473 | spd.nr_pages = i; |