|
@@ -31,26 +31,24 @@ static unsigned int blktrace_seq __read_mostly = 1;
|
|
/*
|
|
/*
|
|
* Send out a notify message.
|
|
* Send out a notify message.
|
|
*/
|
|
*/
|
|
-static inline unsigned int trace_note(struct blk_trace *bt,
|
|
|
|
- pid_t pid, int action,
|
|
|
|
- const void *data, size_t len)
|
|
|
|
|
|
+static void trace_note(struct blk_trace *bt, pid_t pid, int action,
|
|
|
|
+ const void *data, size_t len)
|
|
{
|
|
{
|
|
struct blk_io_trace *t;
|
|
struct blk_io_trace *t;
|
|
- int cpu = smp_processor_id();
|
|
|
|
|
|
|
|
t = relay_reserve(bt->rchan, sizeof(*t) + len);
|
|
t = relay_reserve(bt->rchan, sizeof(*t) + len);
|
|
- if (t == NULL)
|
|
|
|
- return 0;
|
|
|
|
-
|
|
|
|
- t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION;
|
|
|
|
- t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu);
|
|
|
|
- t->device = bt->dev;
|
|
|
|
- t->action = action;
|
|
|
|
- t->pid = pid;
|
|
|
|
- t->cpu = cpu;
|
|
|
|
- t->pdu_len = len;
|
|
|
|
- memcpy((void *) t + sizeof(*t), data, len);
|
|
|
|
- return blktrace_seq;
|
|
|
|
|
|
+ if (t) {
|
|
|
|
+ const int cpu = smp_processor_id();
|
|
|
|
+
|
|
|
|
+ t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION;
|
|
|
|
+ t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu);
|
|
|
|
+ t->device = bt->dev;
|
|
|
|
+ t->action = action;
|
|
|
|
+ t->pid = pid;
|
|
|
|
+ t->cpu = cpu;
|
|
|
|
+ t->pdu_len = len;
|
|
|
|
+ memcpy((void *) t + sizeof(*t), data, len);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -59,9 +57,8 @@ static inline unsigned int trace_note(struct blk_trace *bt,
|
|
*/
|
|
*/
|
|
static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk)
|
|
static void trace_note_tsk(struct blk_trace *bt, struct task_struct *tsk)
|
|
{
|
|
{
|
|
- tsk->btrace_seq = trace_note(bt, tsk->pid,
|
|
|
|
- BLK_TN_PROCESS,
|
|
|
|
- tsk->comm, sizeof(tsk->comm));
|
|
|
|
|
|
+ tsk->btrace_seq = blktrace_seq;
|
|
|
|
+ trace_note(bt, tsk->pid, BLK_TN_PROCESS, tsk->comm, sizeof(tsk->comm));
|
|
}
|
|
}
|
|
|
|
|
|
static void trace_note_time(struct blk_trace *bt)
|
|
static void trace_note_time(struct blk_trace *bt)
|