diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2006-12-04 09:27:41 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2006-12-04 09:27:41 +0100 |
commit | d3d9d2a5ea9770db07aeb13a07f999aa48e8f865 (patch) | |
tree | cd8ccab813677737bf7b65a941566b56b39fb008 | |
parent | d916faace3efc0bf19fe9a615a1ab8fa1a24cd93 (diff) | |
download | lwn-d3d9d2a5ea9770db07aeb13a07f999aa48e8f865.tar.gz lwn-d3d9d2a5ea9770db07aeb13a07f999aa48e8f865.zip |
[PATCH] blktrace: uninline trace_note()
It's too large to inline. Additionally clean it up, by fast pathing
the likely path.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r-- | block/blktrace.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/block/blktrace.c b/block/blktrace.c index 562ca7cbf858..17bbdb811aa7 100644 --- a/block/blktrace.c +++ b/block/blktrace.c @@ -31,25 +31,25 @@ static unsigned int blktrace_seq __read_mostly = 1; /* * 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 unsigned int trace_note(struct blk_trace *bt, pid_t pid, int action, + const void *data, size_t len) { struct blk_io_trace *t; - int cpu = smp_processor_id(); 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); + 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); + } + return blktrace_seq; } |