diff options
Diffstat (limited to 'block/blktrace.c')
-rw-r--r-- | block/blktrace.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/block/blktrace.c b/block/blktrace.c index 562ca7cbf858..74e02c04b2da 100644 --- a/block/blktrace.c +++ b/block/blktrace.c | |||
@@ -31,26 +31,24 @@ static unsigned int blktrace_seq __read_mostly = 1; | |||
31 | /* | 31 | /* |
32 | * Send out a notify message. | 32 | * Send out a notify message. |
33 | */ | 33 | */ |
34 | static inline unsigned int trace_note(struct blk_trace *bt, | 34 | static void trace_note(struct blk_trace *bt, pid_t pid, int action, |
35 | pid_t pid, int action, | 35 | const void *data, size_t len) |
36 | const void *data, size_t len) | ||
37 | { | 36 | { |
38 | struct blk_io_trace *t; | 37 | struct blk_io_trace *t; |
39 | int cpu = smp_processor_id(); | ||
40 | 38 | ||
41 | t = relay_reserve(bt->rchan, sizeof(*t) + len); | 39 | t = relay_reserve(bt->rchan, sizeof(*t) + len); |
42 | if (t == NULL) | 40 | if (t) { |
43 | return 0; | 41 | const int cpu = smp_processor_id(); |
44 | 42 | ||
45 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; | 43 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; |
46 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); | 44 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); |
47 | t->device = bt->dev; | 45 | t->device = bt->dev; |
48 | t->action = action; | 46 | t->action = action; |
49 | t->pid = pid; | 47 | t->pid = pid; |
50 | t->cpu = cpu; | 48 | t->cpu = cpu; |
51 | t->pdu_len = len; | 49 | t->pdu_len = len; |
52 | memcpy((void *) t + sizeof(*t), data, len); | 50 | memcpy((void *) t + sizeof(*t), data, len); |
53 | return blktrace_seq; | 51 | } |
54 | } | 52 | } |
55 | 53 | ||
56 | /* | 54 | /* |
@@ -59,9 +57,8 @@ static inline unsigned int trace_note(struct blk_trace *bt, | |||
59 | */ | 57 | */ |
60 | static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) | 58 | static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk) |
61 | { | 59 | { |
62 | tsk->btrace_seq = trace_note(bt, tsk->pid, | 60 | tsk->btrace_seq = blktrace_seq; |
63 | BLK_TN_PROCESS, | 61 | trace_note(bt, tsk->pid, BLK_TN_PROCESS, tsk->comm, sizeof(tsk->comm)); |
64 | tsk->comm, sizeof(tsk->comm)); | ||
65 | } | 62 | } |
66 | 63 | ||
67 | static void trace_note_time(struct blk_trace *bt) | 64 | static void trace_note_time(struct blk_trace *bt) |