Skip to contentSkip to conversation

Release old elevator on change elevator

PATCH In review Zhaolei 2 participants 2 messages Nov 14, 2008

Subsystems (3)
lore
Share & tools
lore

Zhaolei

author
#0 lore raw

PATCH 1/1 Release old elevator on change elevator

We should release old elevator when change to use a new one.

---
 drivers/block/xen-blkfront.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
drivers/block/xen-blkfront.c +7 -1
index b220c68..2d19f0c 100644
@@ -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);
Signature · 1 line
1.5.5.3
#1 lore raw
Quoted 33 lines · Zhaolei

We should release old elevator when change to use a new one.

---
 drivers/block/xen-blkfront.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
drivers/block/xen-blkfront.c +7 -1
index b220c68..2d19f0c 100644
@@ -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);
Signature · 1 line
1.5.5.3

I thought we'd already switched that to the nonrot flag, but that is merged up for 2.6.29. So this looks appropriate for 2.6.28, I'll queue it up.

Signature · 1 line
Jens Axboe