Lines Matching refs:rq
57 int ide_end_rq(ide_drive_t *drive, struct request *rq, int error, in ide_end_rq() argument
70 return blk_end_request(rq, error, nr_bytes); in ide_end_rq()
78 struct request *rq = cmd->rq; in ide_complete_cmd() local
105 if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) { in ide_complete_cmd()
106 struct ide_cmd *orig_cmd = rq->special; in ide_complete_cmd()
118 struct request *rq = hwif->rq; in ide_complete_rq() local
125 if (blk_noretry_request(rq) && error <= 0) in ide_complete_rq()
126 nr_bytes = blk_rq_sectors(rq) << 9; in ide_complete_rq()
128 rc = ide_end_rq(drive, rq, error, nr_bytes); in ide_complete_rq()
130 hwif->rq = NULL; in ide_complete_rq()
136 void ide_kill_rq(ide_drive_t *drive, struct request *rq) in ide_kill_rq() argument
138 u8 drv_req = (rq->cmd_type == REQ_TYPE_SPECIAL) && rq->rq_disk; in ide_kill_rq()
144 rq->errors = 0; in ide_kill_rq()
147 rq->errors = IDE_DRV_ERROR_GENERAL; in ide_kill_rq()
148 else if (rq->cmd_type != REQ_TYPE_FS && rq->errors == 0) in ide_kill_rq()
149 rq->errors = -EIO; in ide_kill_rq()
152 ide_complete_rq(drive, -EIO, blk_rq_bytes(rq)); in ide_kill_rq()
227 struct request *rq = cmd->rq; in ide_map_sg() local
229 cmd->sg_nents = blk_rq_map_sg(drive->queue, rq, sg); in ide_map_sg()
254 struct request *rq) in execute_drive_cmd() argument
256 struct ide_cmd *cmd = rq->special; in execute_drive_cmd()
260 ide_init_sg_cmd(cmd, blk_rq_sectors(rq) << 9); in execute_drive_cmd()
274 rq->errors = 0; in execute_drive_cmd()
275 ide_complete_rq(drive, 0, blk_rq_bytes(rq)); in execute_drive_cmd()
280 static ide_startstop_t ide_special_rq(ide_drive_t *drive, struct request *rq) in ide_special_rq() argument
282 u8 cmd = rq->cmd[0]; in ide_special_rq()
287 return ide_do_park_unpark(drive, rq); in ide_special_rq()
289 return ide_do_devset(drive, rq); in ide_special_rq()
306 static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq) in start_request() argument
310 BUG_ON(!(rq->cmd_flags & REQ_STARTED)); in start_request()
314 drive->hwif->name, (unsigned long) rq); in start_request()
319 rq->cmd_flags |= REQ_FAILED; in start_request()
323 if (blk_pm_request(rq)) in start_request()
324 ide_check_pm_state(drive, rq); in start_request()
343 if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) in start_request()
344 return execute_drive_cmd(drive, rq); in start_request()
345 else if (blk_pm_request(rq)) { in start_request()
346 struct request_pm_state *pm = rq->special; in start_request()
351 startstop = ide_start_power_step(drive, rq); in start_request()
354 ide_complete_pm_rq(drive, rq); in start_request()
356 } else if (!rq->rq_disk && rq->cmd_type == REQ_TYPE_SPECIAL) in start_request()
365 return ide_special_rq(drive, rq); in start_request()
367 drv = *(struct ide_driver **)rq->rq_disk->private_data; in start_request()
369 return drv->do_request(drive, rq, blk_rq_pos(rq)); in start_request()
373 ide_kill_rq(drive, rq); in start_request()
433 static void __ide_requeue_and_plug(struct request_queue *q, struct request *rq) in __ide_requeue_and_plug() argument
435 if (rq) in __ide_requeue_and_plug()
436 blk_requeue_request(q, rq); in __ide_requeue_and_plug()
437 if (rq || blk_peek_request(q)) { in __ide_requeue_and_plug()
443 void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq) in ide_requeue_and_plug() argument
449 __ide_requeue_and_plug(q, rq); in ide_requeue_and_plug()
461 struct request *rq = NULL; in do_ide_request() local
478 WARN_ON_ONCE(hwif->rq); in do_ide_request()
516 if (!rq) in do_ide_request()
517 rq = blk_fetch_request(drive->queue); in do_ide_request()
522 if (!rq) { in do_ide_request()
541 blk_pm_request(rq) == 0 && in do_ide_request()
542 (rq->cmd_flags & REQ_PREEMPT) == 0) { in do_ide_request()
548 hwif->rq = rq; in do_ide_request()
551 startstop = start_request(drive, rq); in do_ide_request()
555 rq = hwif->rq; in do_ide_request()
556 hwif->rq = NULL; in do_ide_request()
563 if (rq == NULL) in do_ide_request()
573 __ide_requeue_and_plug(q, rq); in do_ide_request()
684 rq_in_flight = hwif->rq; in ide_timer_expiry()
685 hwif->rq = NULL; in ide_timer_expiry()
861 rq_in_flight = hwif->rq; in ide_intr()
862 hwif->rq = NULL; in ide_intr()