Merge "mmc: core: Move update of is_waiting_last_req flag"

This commit is contained in:
Linux Build Service Account
2013-01-07 14:56:38 -08:00
committed by Gerrit - the friendly Code Review server
2 changed files with 7 additions and 8 deletions
+7
View File
@@ -2181,6 +2181,8 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
int ret;
struct mmc_blk_data *md = mq->data;
struct mmc_card *card = md->queue.card;
struct mmc_host *host = card->host;
unsigned long flags;
#ifdef CONFIG_MMC_BLOCK_DEFERRED_RESUME
if (mmc_bus_needs_resume(card->host)) {
@@ -2228,6 +2230,11 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
mmc_blk_issue_rw_rq(mq, NULL);
ret = mmc_blk_issue_flush(mq, req);
} else {
if (!req && host->areq) {
spin_lock_irqsave(&host->context_info.lock, flags);
host->context_info.is_waiting_last_req = true;
spin_unlock_irqrestore(&host->context_info.lock, flags);
}
ret = mmc_blk_issue_rw_rq(mq, req);
}
-8
View File
@@ -78,14 +78,6 @@ static int mmc_queue_thread(void *d)
set_current_state(TASK_INTERRUPTIBLE);
req = blk_fetch_request(q);
mq->mqrq_cur->req = req;
if (!req && mq->mqrq_prev->req &&
!(mq->mqrq_prev->req->cmd_flags & REQ_SANITIZE) &&
!(mq->mqrq_prev->req->cmd_flags & REQ_FLUSH) &&
!(mq->mqrq_prev->req->cmd_flags & REQ_DISCARD)) {
card->host->context_info.is_waiting_last_req = true;
if (stats && stats->enabled)
stats->null_fetched++;
}
spin_unlock_irq(q->queue_lock);
if (req || mq->mqrq_prev->req) {