[PATCH 17/30] blk_end_request: changing mmc (take 4)
DORMANTno replies
From: Kiyoshi Ueda <hidden>
Date: 2007-12-11 22:49:52
Also in:
dm-devel, linux-scsi, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
This patch converts mmc to use blk_end_request interfaces. Related 'uptodate' arguments are converted to 'error'. Cc: Pierre Ossman <redacted> Signed-off-by: Kiyoshi Ueda <redacted> Signed-off-by: Jun'ichi Nomura <redacted> --- drivers/mmc/card/block.c | 24 +++++------------------- drivers/mmc/card/queue.c | 4 ++-- 2 files changed, 7 insertions(+), 21 deletions(-) Index: 2.6.24-rc4/drivers/mmc/card/block.c ===================================================================
--- 2.6.24-rc4.orig/drivers/mmc/card/block.c
+++ 2.6.24-rc4/drivers/mmc/card/block.c@@ -348,15 +348,7 @@ static int mmc_blk_issue_rq(struct mmc_q * A block was successfully transferred. */ spin_lock_irq(&md->lock); - ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered); - if (!ret) { - /* - * The whole request completed successfully. - */ - add_disk_randomness(req->rq_disk); - blkdev_dequeue_request(req); - end_that_request_last(req, 1); - } + ret = __blk_end_request(req, 0, brq.data.bytes_xfered); spin_unlock_irq(&md->lock); } while (ret);
@@ -386,27 +378,21 @@ static int mmc_blk_issue_rq(struct mmc_q else bytes = blocks << 9; spin_lock_irq(&md->lock); - ret = end_that_request_chunk(req, 1, bytes); + ret = __blk_end_request(req, 0, bytes); spin_unlock_irq(&md->lock); } } else if (rq_data_dir(req) != READ && (card->host->caps & MMC_CAP_MULTIWRITE)) { spin_lock_irq(&md->lock); - ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered); + ret = __blk_end_request(req, 0, brq.data.bytes_xfered); spin_unlock_irq(&md->lock); } mmc_release_host(card->host); spin_lock_irq(&md->lock); - while (ret) { - ret = end_that_request_chunk(req, 0, - req->current_nr_sectors << 9); - } - - add_disk_randomness(req->rq_disk); - blkdev_dequeue_request(req); - end_that_request_last(req, 0); + while (ret) + ret = __blk_end_request(req, -EIO, blk_rq_cur_bytes(req)); spin_unlock_irq(&md->lock); return 0;
Index: 2.6.24-rc4/drivers/mmc/card/queue.c ===================================================================
--- 2.6.24-rc4.orig/drivers/mmc/card/queue.c
+++ 2.6.24-rc4/drivers/mmc/card/queue.c@@ -94,8 +94,8 @@ static void mmc_request(struct request_q printk(KERN_ERR "MMC: killing requests for dead queue\n"); while ((req = elv_next_request(q)) != NULL) { do { - ret = end_that_request_chunk(req, 0, - req->current_nr_sectors << 9); + ret = __blk_end_request(req, -EIO, + blk_rq_cur_bytes(req)); } while (ret); } return;