[PATCH] ide-cd: fix breakage with internally queued commands
authorJens Axboe <jens.axboe@oracle.com>
Thu, 12 Oct 2006 13:08:45 +0000 (15:08 +0200)
committerJens Axboe <axboe@nelson.home.kernel.dk>
Thu, 12 Oct 2006 13:08:51 +0000 (15:08 +0200)
We still need to maintain a private PC style command, since it
isn't completely unified with REQ_TYPE_BLOCK_PC yet.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
drivers/ide/ide-cd.c
include/linux/blkdev.h

index 69bbb6206a00ef5673638c0ccfb4a59bfa272b1d..e7513e55ace8b57d40018ac0e8e595898d97d051 100644 (file)
@@ -597,7 +597,7 @@ static void cdrom_prepare_request(ide_drive_t *drive, struct request *rq)
        struct cdrom_info *cd = drive->driver_data;
 
        ide_init_drive_cmd(rq);
-       rq->cmd_type = REQ_TYPE_BLOCK_PC;
+       rq->cmd_type = REQ_TYPE_ATA_PC;
        rq->rq_disk = cd->disk;
 }
 
@@ -2023,7 +2023,8 @@ ide_do_rw_cdrom (ide_drive_t *drive, struct request *rq, sector_t block)
                }
                info->last_block = block;
                return action;
-       } else if (rq->cmd_type == REQ_TYPE_SENSE) {
+       } else if (rq->cmd_type == REQ_TYPE_SENSE ||
+                  rq->cmd_type == REQ_TYPE_ATA_PC) {
                return cdrom_do_packet_command(drive);
        } else if (blk_pc_request(rq)) {
                return cdrom_do_block_pc(drive, rq);
index 26f7856ff8123e4b249ca985505fcd80d7d367d3..d370d2cfe13803ed79626e90194e270cc0c6c169 100644 (file)
@@ -157,6 +157,7 @@ enum rq_cmd_type_bits {
        REQ_TYPE_ATA_CMD,
        REQ_TYPE_ATA_TASK,
        REQ_TYPE_ATA_TASKFILE,
+       REQ_TYPE_ATA_PC,
 };
 
 /*