ide: move request type specific code from ide_end_drive_cmd() to callers (v3)
[deliverable/linux.git] / drivers / ide / ide-eh.c
index 1231b5e486f23973cd7919da81a67fc192b387f1..e2c04886616f1668e8480788b5b3525a570279d7 100644 (file)
@@ -124,7 +124,16 @@ ide_startstop_t ide_error(ide_drive_t *drive, const char *msg, u8 stat)
        /* retry only "normal" I/O: */
        if (!blk_fs_request(rq)) {
                rq->errors = 1;
-               ide_end_drive_cmd(drive, stat, err);
+               if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
+                       ide_task_t *task = rq->special;
+
+                       if (task)
+                               ide_complete_task(drive, task, stat, err);
+               } else if (blk_pm_request(rq)) {
+                       ide_complete_pm_rq(drive, rq);
+                       return ide_stopped;
+               }
+               ide_complete_rq(drive, err);
                return ide_stopped;
        }
 
This page took 0.024219 seconds and 5 git commands to generate.