Lines Matching refs:rq
20 static void blk_end_sync_rq(struct request *rq, blk_status_t error) in blk_end_sync_rq() argument
22 struct completion *waiting = rq->end_io_data; in blk_end_sync_rq()
24 rq->end_io_data = (void *)(uintptr_t)error; in blk_end_sync_rq()
47 void blk_execute_rq_nowait(struct gendisk *bd_disk, struct request *rq, in blk_execute_rq_nowait() argument
51 WARN_ON(!blk_rq_is_passthrough(rq)); in blk_execute_rq_nowait()
53 rq->rq_disk = bd_disk; in blk_execute_rq_nowait()
54 rq->end_io = done; in blk_execute_rq_nowait()
56 blk_account_io_start(rq); in blk_execute_rq_nowait()
62 blk_mq_sched_insert_request(rq, at_head, true, false); in blk_execute_rq_nowait()
66 static bool blk_rq_is_poll(struct request *rq) in blk_rq_is_poll() argument
68 return rq->mq_hctx && rq->mq_hctx->type == HCTX_TYPE_POLL; in blk_rq_is_poll()
71 static void blk_rq_poll_completion(struct request *rq, struct completion *wait) in blk_rq_poll_completion() argument
74 blk_poll(rq->q, request_to_qc_t(rq->mq_hctx, rq), true); in blk_rq_poll_completion()
90 blk_status_t blk_execute_rq(struct gendisk *bd_disk, struct request *rq, int at_head) in blk_execute_rq() argument
95 rq->end_io_data = &wait; in blk_execute_rq()
96 blk_execute_rq_nowait(bd_disk, rq, at_head, blk_end_sync_rq); in blk_execute_rq()
101 if (blk_rq_is_poll(rq)) in blk_execute_rq()
102 blk_rq_poll_completion(rq, &wait); in blk_execute_rq()
108 return (blk_status_t)(uintptr_t)rq->end_io_data; in blk_execute_rq()