| @@ -38,7 +38,7 @@ · 37 unmodified lines |
| 38 | #include "blk-mq-sched.h" | 38 | #include "blk-mq-sched.h" |
| 39 | #include "blk-rq-qos.h" | 39 | #include "blk-rq-qos.h" |
| 40 | | 40 | |
| 41 | static bool blk_mq_poll(struct request_queue *q, blk_qc_t cookie); | 41 | static int blk_mq_poll(struct request_queue *q, blk_qc_t cookie); |
| 42 | static void blk_mq_poll_stats_start(struct request_queue *q); | 42 | static void blk_mq_poll_stats_start(struct request_queue *q); |
| 43 | static void blk_mq_poll_stats_fn(struct blk_stat_callback *cb); | 43 | static void blk_mq_poll_stats_fn(struct blk_stat_callback *cb); |
| 44 | | 44 | |
| @@ -3305,7 +3305,7 @@ static bool blk_mq_poll_hybrid_sleep(struct request_queue *q, · 3260 unmodified lines |
| 3305 | return true; | 3305 | return true; |
| 3306 | } | 3306 | } |
| 3307 | | 3307 | |
| 3308 | static bool __blk_mq_poll(struct blk_mq_hw_ctx *hctx, struct request *rq) | 3308 | static int __blk_mq_poll(struct blk_mq_hw_ctx *hctx, struct request *rq) |
| 3309 | { | 3309 | { |
| 3310 | struct request_queue *q = hctx->queue; | 3310 | struct request_queue *q = hctx->queue; |
| 3311 | long state; | 3311 | long state; |
| @@ -3318,7 +3318,7 @@ static bool __blk_mq_poll(struct blk_mq_hw_ctx *hctx, struct request *rq) · 6 unmodified lines |
| 3318 | * straight to the busy poll loop. | 3318 | * straight to the busy poll loop. |
| 3319 | */ | 3319 | */ |
| 3320 | if (blk_mq_poll_hybrid_sleep(q, hctx, rq)) | 3320 | if (blk_mq_poll_hybrid_sleep(q, hctx, rq)) |
| 3321 | return true; | 3321 | return 1; |
| 3322 | | 3322 | |
| 3323 | hctx->poll_considered++; | 3323 | hctx->poll_considered++; |
| 3324 | | 3324 | |
| @@ -3332,30 +3332,30 @@ static bool __blk_mq_poll(struct blk_mq_hw_ctx *hctx, struct request *rq) · 7 unmodified lines |
| 3332 | if (ret > 0) { | 3332 | if (ret > 0) { |
| 3333 | hctx->poll_success++; | 3333 | hctx->poll_success++; |
| 3334 | __set_current_state(TASK_RUNNING); | 3334 | __set_current_state(TASK_RUNNING); |
| 3335 | return true; | 3335 | return ret; |
| 3336 | } | 3336 | } |
| 3337 | | 3337 | |
| 3338 | if (signal_pending_state(state, current)) | 3338 | if (signal_pending_state(state, current)) |
| 3339 | __set_current_state(TASK_RUNNING); | 3339 | __set_current_state(TASK_RUNNING); |
| 3340 | | 3340 | |
| 3341 | if (current->state == TASK_RUNNING) | 3341 | if (current->state == TASK_RUNNING) |
| 3342 | return true; | 3342 | return 1; |
| 3343 | if (ret < 0) | 3343 | if (ret < 0) |
| 3344 | break; | 3344 | break; |
| 3345 | cpu_relax(); | 3345 | cpu_relax(); |
| 3346 | } | 3346 | } |
| 3347 | | 3347 | |
| 3348 | __set_current_state(TASK_RUNNING); | 3348 | __set_current_state(TASK_RUNNING); |
| 3349 | return false; | 3349 | return 0; |
| 3350 | } | 3350 | } |
| 3351 | | 3351 | |
| 3352 | static bool blk_mq_poll(struct request_queue *q, blk_qc_t cookie) | 3352 | static int blk_mq_poll(struct request_queue *q, blk_qc_t cookie) |
| 3353 | { | 3353 | { |
| 3354 | struct blk_mq_hw_ctx *hctx; | 3354 | struct blk_mq_hw_ctx *hctx; |
| 3355 | struct request *rq; | 3355 | struct request *rq; |
| 3356 | | 3356 | |
| 3357 | if (!test_bit(QUEUE_FLAG_POLL, &q->queue_flags)) | 3357 | if (!test_bit(QUEUE_FLAG_POLL, &q->queue_flags)) |
| 3358 | return false; | 3358 | return 0; |
| 3359 | | 3359 | |
| 3360 | hctx = q->queue_hw_ctx[blk_qc_t_to_queue_num(cookie)]; | 3360 | hctx = q->queue_hw_ctx[blk_qc_t_to_queue_num(cookie)]; |
| 3361 | if (!blk_qc_t_is_internal(cookie)) | 3361 | if (!blk_qc_t_is_internal(cookie)) |
| @@ -3369,7 +3369,7 @@ static bool blk_mq_poll(struct request_queue *q, blk_qc_t cookie) · 7 unmodified lines |
| 3369 | * so we should be safe with just the NULL check. | 3369 | * so we should be safe with just the NULL check. |
| 3370 | */ | 3370 | */ |
| 3371 | if (!rq) | 3371 | if (!rq) |
| 3372 | return false; | 3372 | return 0; |
| 3373 | } | 3373 | } |
| 3374 | | 3374 | |
| 3375 | return __blk_mq_poll(hctx, rq); | 3375 | return __blk_mq_poll(hctx, rq); |