[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <491D387D.1000501@cn.fujitsu.com>
Date: Fri, 14 Nov 2008 16:36:13 +0800
From: Zhaolei <zhaolei@...fujitsu.com>
To: linux-kernel@...r.kernel.org
CC: Jens Axboe <jens.axboe@...cle.com>, jeremy@...source.com
Subject: [PATCH] Release old elevator on change elevator
We should release old elevator when change to use a new one.
Signed-off-by: Zhao Lei <zhaolei@...fujitsu.com>
---
drivers/block/xen-blkfront.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index b220c68..2d19f0c 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -338,12 +338,18 @@ wait:
static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size)
{
struct request_queue *rq;
+ elevator_t *old_e;
rq = blk_init_queue(do_blkif_request, &blkif_io_lock);
if (rq == NULL)
return -1;
- elevator_init(rq, "noop");
+ old_e = rq->elevator;
+ if (IS_ERR_VALUE(elevator_init(rq, "noop")))
+ printk(KERN_WARNING
+ "blkfront: Switch elevator failed, use default\n");
+ else
+ elevator_exit(old_e);
/* Hard sector size and max sectors impersonate the equiv. hardware. */
blk_queue_hardsect_size(rq, sector_size);
--
1.5.5.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists