diff options
author | 2016-11-04 09:34:34 -0600 | |
---|---|---|
committer | 2016-11-11 13:40:25 -0700 | |
commit | bbd7bb7017d5c2b1e75f3818b4ce88fa58bb0eab (patch) | |
tree | 5a025d557bb82df1b27a209e924b0941f2c42aaa /block/blk-core.c | |
parent | Block: mtip32xx: Improvement in code readability when memdup_user() fails. (diff) | |
download | linux-bbd7bb7017d5c2b1e75f3818b4ce88fa58bb0eab.tar.gz linux-bbd7bb7017d5c2b1e75f3818b4ce88fa58bb0eab.tar.bz2 linux-bbd7bb7017d5c2b1e75f3818b4ce88fa58bb0eab.zip |
block: move poll code to blk-mq
The poll code is blk-mq specific, let's move it to blk-mq.c. This
is a prep patch for improving the polling code.
Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 59f8129a4295..eea246567884 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -3312,52 +3312,6 @@ void blk_finish_plug(struct blk_plug *plug) } EXPORT_SYMBOL(blk_finish_plug); -bool blk_poll(struct request_queue *q, blk_qc_t cookie) -{ - struct blk_plug *plug; - long state; - unsigned int queue_num; - struct blk_mq_hw_ctx *hctx; - - if (!q->mq_ops || !q->mq_ops->poll || !blk_qc_t_valid(cookie) || - !test_bit(QUEUE_FLAG_POLL, &q->queue_flags)) - return false; - - queue_num = blk_qc_t_to_queue_num(cookie); - hctx = q->queue_hw_ctx[queue_num]; - hctx->poll_considered++; - - plug = current->plug; - if (plug) - blk_flush_plug_list(plug, false); - - state = current->state; - while (!need_resched()) { - int ret; - - hctx->poll_invoked++; - - ret = q->mq_ops->poll(hctx, blk_qc_t_to_tag(cookie)); - if (ret > 0) { - hctx->poll_success++; - set_current_state(TASK_RUNNING); - return true; - } - - if (signal_pending_state(state, current)) - set_current_state(TASK_RUNNING); - - if (current->state == TASK_RUNNING) - return true; - if (ret < 0) - break; - cpu_relax(); - } - - return false; -} -EXPORT_SYMBOL_GPL(blk_poll); - #ifdef CONFIG_PM /** * blk_pm_runtime_init - Block layer runtime PM initialization routine |