summaryrefslogtreecommitdiffstats
path: root/block/blk-merge.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-08-26 10:25:02 +0200
committerJens Axboe <jens.axboe@oracle.com>2008-10-09 08:56:09 +0200
commitab780f1ece0dc8d5e8e8e85435acc5e4747ccda3 (patch)
tree4085b6c929a44de229eb5ef13fa2079211ea5512 /block/blk-merge.c
parentc7c22e4d5c1fdebfac4dba76de7d0338c2b0d832 (diff)
downloadlinux-ab780f1ece0dc8d5e8e8e85435acc5e4747ccda3.tar.gz
linux-ab780f1ece0dc8d5e8e8e85435acc5e4747ccda3.tar.bz2
linux-ab780f1ece0dc8d5e8e8e85435acc5e4747ccda3.zip
block: inherit CPU completion on bio->rq and rq->rq merges
Somewhat incomplete, as we do allow merges of requests and bios that have different completion CPUs given. This is done on the assumption that a larger IO is still more beneficial than CPU locality. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-merge.c')
-rw-r--r--block/blk-merge.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c
index c77196d55899..908d3e11ac52 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -400,6 +400,8 @@ static int attempt_merge(struct request_queue *q, struct request *req,
}
req->ioprio = ioprio_best(req->ioprio, next->ioprio);
+ if (blk_rq_cpu_valid(next))
+ req->cpu = next->cpu;
__blk_put_request(q, next);
return 1;