提交 7afb3a6e 编写于 作者: K Kiyoshi Ueda 提交者: Jens Axboe

gdrom: change to use __blk_end_request()

This patch converts gdrom to use __blk_end_request() directly
so that end_{queued|dequeued}_request() can be removed.

gd.transfer is '1' in error cases and '0' in non-error cases,
so gdrom hasn't been propagating any error code to the block layer.
We can just convert error cases to '-EIO'.
Signed-off-by: NKiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: NJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Cc: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 2a9df505
...@@ -624,14 +624,14 @@ static void gdrom_readdisk_dma(struct work_struct *work) ...@@ -624,14 +624,14 @@ static void gdrom_readdisk_dma(struct work_struct *work)
ctrl_outb(1, GDROM_DMA_STATUS_REG); ctrl_outb(1, GDROM_DMA_STATUS_REG);
wait_event_interruptible_timeout(request_queue, wait_event_interruptible_timeout(request_queue,
gd.transfer == 0, GDROM_DEFAULT_TIMEOUT); gd.transfer == 0, GDROM_DEFAULT_TIMEOUT);
err = gd.transfer; err = gd.transfer ? -EIO : 0;
gd.transfer = 0; gd.transfer = 0;
gd.pending = 0; gd.pending = 0;
/* now seek to take the request spinlock /* now seek to take the request spinlock
* before handling ending the request */ * before handling ending the request */
spin_lock(&gdrom_lock); spin_lock(&gdrom_lock);
list_del_init(&req->queuelist); list_del_init(&req->queuelist);
end_dequeued_request(req, 1 - err); __blk_end_request(req, err, blk_rq_bytes(req));
} }
spin_unlock(&gdrom_lock); spin_unlock(&gdrom_lock);
kfree(read_command); kfree(read_command);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册