Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-block.git] / drivers / ide / ide-disk.c
index e3b4e659082d89a16dbcddbed9fa72157a0bf8f5..197912af5c2fcbd9870e73f15b894494c1e7ff20 100644 (file)
@@ -427,16 +427,15 @@ static void ide_disk_unlock_native_capacity(ide_drive_t *drive)
                drive->dev_flags |= IDE_DFLAG_NOHPA; /* disable HPA on resume */
 }
 
-static int idedisk_prep_fn(struct request_queue *q, struct request *rq)
+static bool idedisk_prep_rq(ide_drive_t *drive, struct request *rq)
 {
-       ide_drive_t *drive = q->queuedata;
        struct ide_cmd *cmd;
 
        if (req_op(rq) != REQ_OP_FLUSH)
-               return BLKPREP_OK;
+               return true;
 
-       if (rq->special) {
-               cmd = rq->special;
+       if (ide_req(rq)->special) {
+               cmd = ide_req(rq)->special;
                memset(cmd, 0, sizeof(*cmd));
        } else {
                cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
@@ -456,10 +455,10 @@ static int idedisk_prep_fn(struct request_queue *q, struct request *rq)
        rq->cmd_flags &= ~REQ_OP_MASK;
        rq->cmd_flags |= REQ_OP_DRV_OUT;
        ide_req(rq)->type = ATA_PRIV_TASKFILE;
-       rq->special = cmd;
+       ide_req(rq)->special = cmd;
        cmd->rq = rq;
 
-       return BLKPREP_OK;
+       return true;
 }
 
 ide_devset_get(multcount, mult_count);
@@ -548,7 +547,7 @@ static void update_flush(ide_drive_t *drive)
 
                if (barrier) {
                        wc = true;
-                       blk_queue_prep_rq(drive->queue, idedisk_prep_fn);
+                       drive->prep_rq = idedisk_prep_rq;
                }
        }