Lines Matching refs:rq

57 int ide_end_rq(ide_drive_t *drive, struct request *rq, blk_status_t error,  in ide_end_rq()  argument
70 if (!blk_update_request(rq, error, nr_bytes)) { in ide_end_rq()
71 if (rq == drive->sense_rq) { in ide_end_rq()
76 __blk_mq_end_request(rq, error); in ide_end_rq()
88 struct request *rq = cmd->rq; in ide_complete_cmd() local
115 if (rq && ata_taskfile_request(rq)) { in ide_complete_cmd()
116 struct ide_cmd *orig_cmd = ide_req(rq)->special; in ide_complete_cmd()
128 struct request *rq = hwif->rq; in ide_complete_rq() local
135 if (blk_noretry_request(rq) && error) in ide_complete_rq()
136 nr_bytes = blk_rq_sectors(rq) << 9; in ide_complete_rq()
138 rc = ide_end_rq(drive, rq, error, nr_bytes); in ide_complete_rq()
140 hwif->rq = NULL; in ide_complete_rq()
146 void ide_kill_rq(ide_drive_t *drive, struct request *rq) in ide_kill_rq() argument
148 u8 drv_req = ata_misc_request(rq) && rq->rq_disk; in ide_kill_rq()
154 scsi_req(rq)->result = 0; in ide_kill_rq()
157 scsi_req(rq)->result = IDE_DRV_ERROR_GENERAL; in ide_kill_rq()
158 else if (blk_rq_is_passthrough(rq) && scsi_req(rq)->result == 0) in ide_kill_rq()
159 scsi_req(rq)->result = -EIO; in ide_kill_rq()
162 ide_complete_rq(drive, BLK_STS_IOERR, blk_rq_bytes(rq)); in ide_kill_rq()
237 struct request *rq = cmd->rq; in ide_map_sg() local
239 cmd->sg_nents = blk_rq_map_sg(drive->queue, rq, sg); in ide_map_sg()
264 struct request *rq) in execute_drive_cmd() argument
266 struct ide_cmd *cmd = ide_req(rq)->special; in execute_drive_cmd()
270 ide_init_sg_cmd(cmd, blk_rq_sectors(rq) << 9); in execute_drive_cmd()
284 scsi_req(rq)->result = 0; in execute_drive_cmd()
285 ide_complete_rq(drive, BLK_STS_OK, blk_rq_bytes(rq)); in execute_drive_cmd()
290 static ide_startstop_t ide_special_rq(ide_drive_t *drive, struct request *rq) in ide_special_rq() argument
292 u8 cmd = scsi_req(rq)->cmd[0]; in ide_special_rq()
297 return ide_do_park_unpark(drive, rq); in ide_special_rq()
299 return ide_do_devset(drive, rq); in ide_special_rq()
316 static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq) in start_request() argument
322 drive->hwif->name, (unsigned long) rq); in start_request()
327 rq->rq_flags |= RQF_FAILED; in start_request()
331 if (drive->prep_rq && !drive->prep_rq(drive, rq)) in start_request()
334 if (ata_pm_request(rq)) in start_request()
335 ide_check_pm_state(drive, rq); in start_request()
354 if (ata_taskfile_request(rq)) in start_request()
355 return execute_drive_cmd(drive, rq); in start_request()
356 else if (ata_pm_request(rq)) { in start_request()
357 struct ide_pm_state *pm = ide_req(rq)->special; in start_request()
362 startstop = ide_start_power_step(drive, rq); in start_request()
365 ide_complete_pm_rq(drive, rq); in start_request()
367 } else if (!rq->rq_disk && ata_misc_request(rq)) in start_request()
376 return ide_special_rq(drive, rq); in start_request()
378 drv = *(struct ide_driver **)rq->rq_disk->private_data; in start_request()
380 return drv->do_request(drive, rq, blk_rq_pos(rq)); in start_request()
384 ide_kill_rq(drive, rq); in start_request()
444 void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq) in ide_requeue_and_plug() argument
449 if (rq) { in ide_requeue_and_plug()
450 blk_mq_requeue_request(rq, false); in ide_requeue_and_plug()
456 blk_status_t ide_issue_rq(ide_drive_t *drive, struct request *rq, in ide_issue_rq() argument
463 if (!blk_rq_is_passthrough(rq) && !(rq->rq_flags & RQF_DONTPREP)) { in ide_issue_rq()
464 rq->rq_flags |= RQF_DONTPREP; in ide_issue_rq()
465 ide_req(rq)->special = NULL; in ide_issue_rq()
479 WARN_ON_ONCE(hwif->rq); in ide_issue_rq()
522 ata_pm_request(rq) == 0 && in ide_issue_rq()
523 (rq->rq_flags & RQF_PREEMPT) == 0) { in ide_issue_rq()
529 scsi_req(rq)->resid_len = blk_rq_bytes(rq); in ide_issue_rq()
530 hwif->rq = rq; in ide_issue_rq()
533 startstop = start_request(drive, rq); in ide_issue_rq()
537 rq = hwif->rq; in ide_issue_rq()
538 hwif->rq = NULL; in ide_issue_rq()
539 if (rq) in ide_issue_rq()
547 list_add(&rq->queuelist, &drive->rq_list); in ide_issue_rq()
551 ide_requeue_and_plug(drive, rq); in ide_issue_rq()
557 if (rq == NULL) in ide_issue_rq()
578 blk_mq_start_request(bd->rq); in ide_queue_rq()
579 return ide_issue_rq(drive, bd->rq, false); in ide_queue_rq()
690 rq_in_flight = hwif->rq; in ide_timer_expiry()
691 hwif->rq = NULL; in ide_timer_expiry()
867 rq_in_flight = hwif->rq; in ide_intr()
868 hwif->rq = NULL; in ide_intr()
900 void ide_insert_request_head(ide_drive_t *drive, struct request *rq) in ide_insert_request_head() argument
903 list_add_tail(&rq->queuelist, &drive->rq_list); in ide_insert_request_head()