summary refs log tree commit diff
path: root/block/as-iosched.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-02-01 11:34:49 +0100
committerJens Axboe <jens.axboe@oracle.com>2008-02-01 11:34:49 +0100
commit3bc217ffe6774e7971d6a7ce6350ce806ebab044 (patch)
treeb1ccad14a0c23f12248092feb867d2e311db59f0 /block/as-iosched.c
parent8bdd3f8a6993fef2f364aca6e1a59559405773a2 (diff)
downloadlinux-3bc217ffe6774e7971d6a7ce6350ce806ebab044.tar.gz
block: kill swap_io_context()
It blindly copies everything in the io_context, including the lock.
That doesn't work so well for either lock ordering or lockdep.

There seems zero point in swapping io contexts on a request to request
merge, so the best point of action is to just remove it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/as-iosched.c')
-rw-r--r--block/as-iosched.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/block/as-iosched.c b/block/as-iosched.c
index 612d64096300..8c3946787dbb 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1268,22 +1268,8 @@ static void as_merged_requests(struct request_queue *q, struct request *req,
 	 */
 	if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) {
 		if (time_before(rq_fifo_time(next), rq_fifo_time(req))) {
-			struct io_context *rioc = RQ_IOC(req);
-			struct io_context *nioc = RQ_IOC(next);
-
 			list_move(&req->queuelist, &next->queuelist);
 			rq_set_fifo_time(req, rq_fifo_time(next));
-			/*
-			 * Don't copy here but swap, because when anext is
-			 * removed below, it must contain the unused context
-			 */
-			if (rioc != nioc) {
-				double_spin_lock(&rioc->lock, &nioc->lock,
-								rioc < nioc);
-				swap_io_context(&rioc, &nioc);
-				double_spin_unlock(&rioc->lock, &nioc->lock,
-								rioc < nioc);
-			}
 		}
 	}