diff options
author | Jens Axboe <axboe@suse.de> | 2006-08-10 02:44:47 -0400 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2006-09-30 14:23:37 -0400 |
commit | 4aff5e2333c9a1609662f2091f55c3f6fffdad36 (patch) | |
tree | b73d8c2b7c1bdc03d3313c108da7dfc95ee95525 /drivers/scsi | |
parent | 77ed74da26f50fa28471571ee7a2251b77526d84 (diff) |
[PATCH] Split struct request ->flags into two parts
Right now ->flags is a bit of a mess: some are request types, and
others are just modifiers. Clean this up by splitting it into
->cmd_type and ->cmd_flags. This allows introduction of generic
Linux block message types, useful for sending generic Linux commands
to block devices.
Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/aic7xxx_old.c | 4 | ||||
-rw-r--r-- | drivers/scsi/ide-scsi.c | 14 | ||||
-rw-r--r-- | drivers/scsi/pluto.c | 6 | ||||
-rw-r--r-- | drivers/scsi/scsi_lib.c | 37 | ||||
-rw-r--r-- | drivers/scsi/sd.c | 5 | ||||
-rw-r--r-- | drivers/scsi/sun3_NCR5380.c | 2 | ||||
-rw-r--r-- | drivers/scsi/sun3_scsi.c | 2 | ||||
-rw-r--r-- | drivers/scsi/sun3_scsi_vme.c | 2 |
8 files changed, 36 insertions, 36 deletions
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c index 5dcef48d414..10353379a07 100644 --- a/drivers/scsi/aic7xxx_old.c +++ b/drivers/scsi/aic7xxx_old.c | |||
@@ -2862,7 +2862,7 @@ aic7xxx_done(struct aic7xxx_host *p, struct aic7xxx_scb *scb) | |||
2862 | aic_dev->r_total++; | 2862 | aic_dev->r_total++; |
2863 | ptr = aic_dev->r_bins; | 2863 | ptr = aic_dev->r_bins; |
2864 | } | 2864 | } |
2865 | if(cmd->device->simple_tags && cmd->request->flags & REQ_HARDBARRIER) | 2865 | if(cmd->device->simple_tags && cmd->request->cmd_flags & REQ_HARDBARRIER) |
2866 | { | 2866 | { |
2867 | aic_dev->barrier_total++; | 2867 | aic_dev->barrier_total++; |
2868 | if(scb->tag_action == MSG_ORDERED_Q_TAG) | 2868 | if(scb->tag_action == MSG_ORDERED_Q_TAG) |
@@ -10158,7 +10158,7 @@ aic7xxx_buildscb(struct aic7xxx_host *p, Scsi_Cmnd *cmd, | |||
10158 | /* We always force TEST_UNIT_READY to untagged */ | 10158 | /* We always force TEST_UNIT_READY to untagged */ |
10159 | if (cmd->cmnd[0] != TEST_UNIT_READY && sdptr->simple_tags) | 10159 | if (cmd->cmnd[0] != TEST_UNIT_READY && sdptr->simple_tags) |
10160 | { | 10160 | { |
10161 | if (req->flags & REQ_HARDBARRIER) | 10161 | if (req->cmd_flags & REQ_HARDBARRIER) |
10162 | { | 10162 | { |
10163 | if(sdptr->ordered_tags) | 10163 | if(sdptr->ordered_tags) |
10164 | { | 10164 | { |
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index 94d1de55607..65b19695ebe 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -344,7 +344,7 @@ static int idescsi_check_condition(ide_drive_t *drive, struct request *failed_co | |||
344 | pc->buffer = buf; | 344 | pc->buffer = buf; |
345 | pc->c[0] = REQUEST_SENSE; | 345 | pc->c[0] = REQUEST_SENSE; |
346 | pc->c[4] = pc->request_transfer = pc->buffer_size = SCSI_SENSE_BUFFERSIZE; | 346 | pc->c[4] = pc->request_transfer = pc->buffer_size = SCSI_SENSE_BUFFERSIZE; |
347 | rq->flags = REQ_SENSE; | 347 | rq->cmd_type = REQ_TYPE_SENSE; |
348 | pc->timeout = jiffies + WAIT_READY; | 348 | pc->timeout = jiffies + WAIT_READY; |
349 | /* NOTE! Save the failed packet command in "rq->buffer" */ | 349 | /* NOTE! Save the failed packet command in "rq->buffer" */ |
350 | rq->buffer = (void *) failed_command->special; | 350 | rq->buffer = (void *) failed_command->special; |
@@ -398,12 +398,12 @@ static int idescsi_end_request (ide_drive_t *drive, int uptodate, int nrsecs) | |||
398 | int errors = rq->errors; | 398 | int errors = rq->errors; |
399 | unsigned long flags; | 399 | unsigned long flags; |
400 | 400 | ||
401 | if (!(rq->flags & (REQ_SPECIAL|REQ_SENSE))) { | 401 | if (!blk_special_request(rq) && !blk_sense_request(rq)) { |
402 | ide_end_request(drive, uptodate, nrsecs); | 402 | ide_end_request(drive, uptodate, nrsecs); |
403 | return 0; | 403 | return 0; |
404 | } | 404 | } |
405 | ide_end_drive_cmd (drive, 0, 0); | 405 | ide_end_drive_cmd (drive, 0, 0); |
406 | if (rq->flags & REQ_SENSE) { | 406 | if (blk_sense_request(rq)) { |
407 | idescsi_pc_t *opc = (idescsi_pc_t *) rq->buffer; | 407 | idescsi_pc_t *opc = (idescsi_pc_t *) rq->buffer; |
408 | if (log) { | 408 | if (log) { |
409 | printk ("ide-scsi: %s: wrap up check %lu, rst = ", drive->name, opc->scsi_cmd->serial_number); | 409 | printk ("ide-scsi: %s: wrap up check %lu, rst = ", drive->name, opc->scsi_cmd->serial_number); |
@@ -712,7 +712,7 @@ static ide_startstop_t idescsi_do_request (ide_drive_t *drive, struct request *r | |||
712 | printk (KERN_INFO "sector: %ld, nr_sectors: %ld, current_nr_sectors: %d\n",rq->sector,rq->nr_sectors,rq->current_nr_sectors); | 712 | printk (KERN_INFO "sector: %ld, nr_sectors: %ld, current_nr_sectors: %d\n",rq->sector,rq->nr_sectors,rq->current_nr_sectors); |
713 | #endif /* IDESCSI_DEBUG_LOG */ | 713 | #endif /* IDESCSI_DEBUG_LOG */ |
714 | 714 | ||
715 | if (rq->flags & (REQ_SPECIAL|REQ_SENSE)) { | 715 | if (blk_sense_request(rq) || blk_special_request(rq)) { |
716 | return idescsi_issue_pc (drive, (idescsi_pc_t *) rq->special); | 716 | return idescsi_issue_pc (drive, (idescsi_pc_t *) rq->special); |
717 | } | 717 | } |
718 | blk_dump_rq_flags(rq, "ide-scsi: unsup command"); | 718 | blk_dump_rq_flags(rq, "ide-scsi: unsup command"); |
@@ -938,7 +938,7 @@ static int idescsi_queue (struct scsi_cmnd *cmd, | |||
938 | 938 | ||
939 | ide_init_drive_cmd (rq); | 939 | ide_init_drive_cmd (rq); |
940 | rq->special = (char *) pc; | 940 | rq->special = (char *) pc; |
941 | rq->flags = REQ_SPECIAL; | 941 | rq->cmd_type = REQ_TYPE_SPECIAL; |
942 | spin_unlock_irq(host->host_lock); | 942 | spin_unlock_irq(host->host_lock); |
943 | rq->rq_disk = scsi->disk; | 943 | rq->rq_disk = scsi->disk; |
944 | (void) ide_do_drive_cmd (drive, rq, ide_end); | 944 | (void) ide_do_drive_cmd (drive, rq, ide_end); |
@@ -992,7 +992,7 @@ static int idescsi_eh_abort (struct scsi_cmnd *cmd) | |||
992 | */ | 992 | */ |
993 | printk (KERN_ERR "ide-scsi: cmd aborted!\n"); | 993 | printk (KERN_ERR "ide-scsi: cmd aborted!\n"); |
994 | 994 | ||
995 | if (scsi->pc->rq->flags & REQ_SENSE) | 995 | if (blk_sense_request(scsi->pc->rq)) |
996 | kfree(scsi->pc->buffer); | 996 | kfree(scsi->pc->buffer); |
997 | kfree(scsi->pc->rq); | 997 | kfree(scsi->pc->rq); |
998 | kfree(scsi->pc); | 998 | kfree(scsi->pc); |
@@ -1042,7 +1042,7 @@ static int idescsi_eh_reset (struct scsi_cmnd *cmd) | |||
1042 | /* kill current request */ | 1042 | /* kill current request */ |
1043 | blkdev_dequeue_request(req); | 1043 | blkdev_dequeue_request(req); |
1044 | end_that_request_last(req, 0); | 1044 | end_that_request_last(req, 0); |
1045 | if (req->flags & REQ_SENSE) | 1045 | if (blk_sense_request(req)) |
1046 | kfree(scsi->pc->buffer); | 1046 | kfree(scsi->pc->buffer); |
1047 | kfree(scsi->pc); | 1047 | kfree(scsi->pc); |
1048 | scsi->pc = NULL; | 1048 | scsi->pc = NULL; |
diff --git a/drivers/scsi/pluto.c b/drivers/scsi/pluto.c index 0bd9c60e645..aa60a5f1fbc 100644 --- a/drivers/scsi/pluto.c +++ b/drivers/scsi/pluto.c | |||
@@ -67,7 +67,6 @@ static void __init pluto_detect_done(Scsi_Cmnd *SCpnt) | |||
67 | 67 | ||
68 | static void __init pluto_detect_scsi_done(Scsi_Cmnd *SCpnt) | 68 | static void __init pluto_detect_scsi_done(Scsi_Cmnd *SCpnt) |
69 | { | 69 | { |
70 | SCpnt->request->rq_status = RQ_SCSI_DONE; | ||
71 | PLND(("Detect done %08lx\n", (long)SCpnt)) | 70 | PLND(("Detect done %08lx\n", (long)SCpnt)) |
72 | if (atomic_dec_and_test (&fcss)) | 71 | if (atomic_dec_and_test (&fcss)) |
73 | up(&fc_sem); | 72 | up(&fc_sem); |
@@ -166,7 +165,7 @@ int __init pluto_detect(struct scsi_host_template *tpnt) | |||
166 | 165 | ||
167 | SCpnt->cmd_len = COMMAND_SIZE(INQUIRY); | 166 | SCpnt->cmd_len = COMMAND_SIZE(INQUIRY); |
168 | 167 | ||
169 | SCpnt->request->rq_status = RQ_SCSI_BUSY; | 168 | SCpnt->request->cmd_flags &= ~REQ_STARTED; |
170 | 169 | ||
171 | SCpnt->done = pluto_detect_done; | 170 | SCpnt->done = pluto_detect_done; |
172 | SCpnt->request_bufflen = 256; | 171 | SCpnt->request_bufflen = 256; |
@@ -178,7 +177,8 @@ int __init pluto_detect(struct scsi_host_template *tpnt) | |||
178 | for (retry = 0; retry < 5; retry++) { | 177 | for (retry = 0; retry < 5; retry++) { |
179 | for (i = 0; i < fcscount; i++) { | 178 | for (i = 0; i < fcscount; i++) { |
180 | if (!fcs[i].fc) break; | 179 | if (!fcs[i].fc) break; |
181 | if (fcs[i].cmd.request->rq_status != RQ_SCSI_DONE) { | 180 | if (!(fcs[i].cmd.request->cmd_flags & REQ_STARTED)) { |
181 | fcs[i].cmd.request->cmd_flags |= REQ_STARTED; | ||
182 | disable_irq(fcs[i].fc->irq); | 182 | disable_irq(fcs[i].fc->irq); |
183 | PLND(("queuecommand %d %d\n", retry, i)) | 183 | PLND(("queuecommand %d %d\n", retry, i)) |
184 | fcp_scsi_queuecommand (&(fcs[i].cmd), | 184 | fcp_scsi_queuecommand (&(fcs[i].cmd), |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index d6743b959a7..71084728eb4 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -82,7 +82,7 @@ static void scsi_unprep_request(struct request *req) | |||
82 | { | 82 | { |
83 | struct scsi_cmnd *cmd = req->special; | 83 | struct scsi_cmnd *cmd = req->special; |
84 | 84 | ||
85 | req->flags &= ~REQ_DONTPREP; | 85 | req->cmd_flags &= ~REQ_DONTPREP; |
86 | req->special = NULL; | 86 | req->special = NULL; |
87 | 87 | ||
88 | scsi_put_command(cmd); | 88 | scsi_put_command(cmd); |
@@ -196,7 +196,8 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, | |||
196 | req->sense_len = 0; | 196 | req->sense_len = 0; |
197 | req->retries = retries; | 197 | req->retries = retries; |
198 | req->timeout = timeout; | 198 | req->timeout = timeout; |
199 | req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET; | 199 | req->cmd_type = REQ_TYPE_BLOCK_PC; |
200 | req->cmd_flags |= flags | REQ_QUIET | REQ_PREEMPT; | ||
200 | 201 | ||
201 | /* | 202 | /* |
202 | * head injection *required* here otherwise quiesce won't work | 203 | * head injection *required* here otherwise quiesce won't work |
@@ -397,7 +398,8 @@ int scsi_execute_async(struct scsi_device *sdev, const unsigned char *cmd, | |||
397 | req = blk_get_request(sdev->request_queue, write, gfp); | 398 | req = blk_get_request(sdev->request_queue, write, gfp); |
398 | if (!req) | 399 | if (!req) |
399 | goto free_sense; | 400 | goto free_sense; |
400 | req->flags |= REQ_BLOCK_PC | REQ_QUIET; | 401 | req->cmd_type = REQ_TYPE_BLOCK_PC; |
402 | req->cmd_flags |= REQ_QUIET; | ||
401 | 403 | ||
402 | if (use_sg) | 404 | if (use_sg) |
403 | err = scsi_req_map_sg(req, buffer, use_sg, bufflen, gfp); | 405 | err = scsi_req_map_sg(req, buffer, use_sg, bufflen, gfp); |
@@ -933,7 +935,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
933 | break; | 935 | break; |
934 | } | 936 | } |
935 | } | 937 | } |
936 | if (!(req->flags & REQ_QUIET)) { | 938 | if (!(req->cmd_flags & REQ_QUIET)) { |
937 | scmd_printk(KERN_INFO, cmd, | 939 | scmd_printk(KERN_INFO, cmd, |
938 | "Device not ready: "); | 940 | "Device not ready: "); |
939 | scsi_print_sense_hdr("", &sshdr); | 941 | scsi_print_sense_hdr("", &sshdr); |
@@ -941,7 +943,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
941 | scsi_end_request(cmd, 0, this_count, 1); | 943 | scsi_end_request(cmd, 0, this_count, 1); |
942 | return; | 944 | return; |
943 | case VOLUME_OVERFLOW: | 945 | case VOLUME_OVERFLOW: |
944 | if (!(req->flags & REQ_QUIET)) { | 946 | if (!(req->cmd_flags & REQ_QUIET)) { |
945 | scmd_printk(KERN_INFO, cmd, | 947 | scmd_printk(KERN_INFO, cmd, |
946 | "Volume overflow, CDB: "); | 948 | "Volume overflow, CDB: "); |
947 | __scsi_print_command(cmd->cmnd); | 949 | __scsi_print_command(cmd->cmnd); |
@@ -963,7 +965,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
963 | return; | 965 | return; |
964 | } | 966 | } |
965 | if (result) { | 967 | if (result) { |
966 | if (!(req->flags & REQ_QUIET)) { | 968 | if (!(req->cmd_flags & REQ_QUIET)) { |
967 | scmd_printk(KERN_INFO, cmd, | 969 | scmd_printk(KERN_INFO, cmd, |
968 | "SCSI error: return code = 0x%08x\n", | 970 | "SCSI error: return code = 0x%08x\n", |
969 | result); | 971 | result); |
@@ -995,7 +997,7 @@ static int scsi_init_io(struct scsi_cmnd *cmd) | |||
995 | /* | 997 | /* |
996 | * if this is a rq->data based REQ_BLOCK_PC, setup for a non-sg xfer | 998 | * if this is a rq->data based REQ_BLOCK_PC, setup for a non-sg xfer |
997 | */ | 999 | */ |
998 | if ((req->flags & REQ_BLOCK_PC) && !req->bio) { | 1000 | if (blk_pc_request(req) && !req->bio) { |
999 | cmd->request_bufflen = req->data_len; | 1001 | cmd->request_bufflen = req->data_len; |
1000 | cmd->request_buffer = req->data; | 1002 | cmd->request_buffer = req->data; |
1001 | req->buffer = req->data; | 1003 | req->buffer = req->data; |
@@ -1139,13 +1141,12 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1139 | * these two cases differently. We differentiate by looking | 1141 | * these two cases differently. We differentiate by looking |
1140 | * at request->cmd, as this tells us the real story. | 1142 | * at request->cmd, as this tells us the real story. |
1141 | */ | 1143 | */ |
1142 | if (req->flags & REQ_SPECIAL && req->special) { | 1144 | if (blk_special_request(req) && req->special) |
1143 | cmd = req->special; | 1145 | cmd = req->special; |
1144 | } else if (req->flags & (REQ_CMD | REQ_BLOCK_PC)) { | 1146 | else if (blk_pc_request(req) || blk_fs_request(req)) { |
1145 | 1147 | if (unlikely(specials_only) && !(req->cmd_flags & REQ_PREEMPT)){ | |
1146 | if(unlikely(specials_only) && !(req->flags & REQ_SPECIAL)) { | 1148 | if (specials_only == SDEV_QUIESCE || |
1147 | if(specials_only == SDEV_QUIESCE || | 1149 | specials_only == SDEV_BLOCK) |
1148 | specials_only == SDEV_BLOCK) | ||
1149 | goto defer; | 1150 | goto defer; |
1150 | 1151 | ||
1151 | sdev_printk(KERN_ERR, sdev, | 1152 | sdev_printk(KERN_ERR, sdev, |
@@ -1153,7 +1154,6 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1153 | goto kill; | 1154 | goto kill; |
1154 | } | 1155 | } |
1155 | 1156 | ||
1156 | |||
1157 | /* | 1157 | /* |
1158 | * Now try and find a command block that we can use. | 1158 | * Now try and find a command block that we can use. |
1159 | */ | 1159 | */ |
@@ -1184,7 +1184,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1184 | * lock. We hope REQ_STARTED prevents anything untoward from | 1184 | * lock. We hope REQ_STARTED prevents anything untoward from |
1185 | * happening now. | 1185 | * happening now. |
1186 | */ | 1186 | */ |
1187 | if (req->flags & (REQ_CMD | REQ_BLOCK_PC)) { | 1187 | if (blk_fs_request(req) || blk_pc_request(req)) { |
1188 | int ret; | 1188 | int ret; |
1189 | 1189 | ||
1190 | /* | 1190 | /* |
@@ -1216,7 +1216,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1216 | /* | 1216 | /* |
1217 | * Initialize the actual SCSI command for this request. | 1217 | * Initialize the actual SCSI command for this request. |
1218 | */ | 1218 | */ |
1219 | if (req->flags & REQ_BLOCK_PC) { | 1219 | if (blk_pc_request(req)) { |
1220 | scsi_setup_blk_pc_cmnd(cmd); | 1220 | scsi_setup_blk_pc_cmnd(cmd); |
1221 | } else if (req->rq_disk) { | 1221 | } else if (req->rq_disk) { |
1222 | struct scsi_driver *drv; | 1222 | struct scsi_driver *drv; |
@@ -1233,7 +1233,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1233 | /* | 1233 | /* |
1234 | * The request is now prepped, no need to come back here | 1234 | * The request is now prepped, no need to come back here |
1235 | */ | 1235 | */ |
1236 | req->flags |= REQ_DONTPREP; | 1236 | req->cmd_flags |= REQ_DONTPREP; |
1237 | return BLKPREP_OK; | 1237 | return BLKPREP_OK; |
1238 | 1238 | ||
1239 | defer: | 1239 | defer: |
@@ -1454,8 +1454,9 @@ static void scsi_request_fn(struct request_queue *q) | |||
1454 | if (unlikely(cmd == NULL)) { | 1454 | if (unlikely(cmd == NULL)) { |
1455 | printk(KERN_CRIT "impossible request in %s.\n" | 1455 | printk(KERN_CRIT "impossible request in %s.\n" |
1456 | "please mail a stack trace to " | 1456 | "please mail a stack trace to " |
1457 | "linux-scsi@vger.kernel.org", | 1457 | "linux-scsi@vger.kernel.org\n", |
1458 | __FUNCTION__); | 1458 | __FUNCTION__); |
1459 | blk_dump_rq_flags(req, "foo"); | ||
1459 | BUG(); | 1460 | BUG(); |
1460 | } | 1461 | } |
1461 | spin_lock(shost->host_lock); | 1462 | spin_lock(shost->host_lock); |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 638cff41d43..10bc99c911f 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -443,8 +443,7 @@ static int sd_init_command(struct scsi_cmnd * SCpnt) | |||
443 | SCpnt->cmnd[0] = READ_6; | 443 | SCpnt->cmnd[0] = READ_6; |
444 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; | 444 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; |
445 | } else { | 445 | } else { |
446 | printk(KERN_ERR "sd: Unknown command %lx\n", rq->flags); | 446 | printk(KERN_ERR "sd: Unknown command %x\n", rq->cmd_flags); |
447 | /* overkill panic("Unknown sd command %lx\n", rq->flags); */ | ||
448 | return 0; | 447 | return 0; |
449 | } | 448 | } |
450 | 449 | ||
@@ -840,7 +839,7 @@ static int sd_issue_flush(struct device *dev, sector_t *error_sector) | |||
840 | static void sd_prepare_flush(request_queue_t *q, struct request *rq) | 839 | static void sd_prepare_flush(request_queue_t *q, struct request *rq) |
841 | { | 840 | { |
842 | memset(rq->cmd, 0, sizeof(rq->cmd)); | 841 | memset(rq->cmd, 0, sizeof(rq->cmd)); |
843 | rq->flags |= REQ_BLOCK_PC; | 842 | rq->cmd_type = REQ_TYPE_BLOCK_PC; |
844 | rq->timeout = SD_TIMEOUT; | 843 | rq->timeout = SD_TIMEOUT; |
845 | rq->cmd[0] = SYNCHRONIZE_CACHE; | 844 | rq->cmd[0] = SYNCHRONIZE_CACHE; |
846 | rq->cmd_len = 10; | 845 | rq->cmd_len = 10; |
diff --git a/drivers/scsi/sun3_NCR5380.c b/drivers/scsi/sun3_NCR5380.c index 2f8073b73bf..7f9bcef6adf 100644 --- a/drivers/scsi/sun3_NCR5380.c +++ b/drivers/scsi/sun3_NCR5380.c | |||
@@ -2017,7 +2017,7 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2017 | if((count > SUN3_DMA_MINSIZE) && (sun3_dma_setup_done | 2017 | if((count > SUN3_DMA_MINSIZE) && (sun3_dma_setup_done |
2018 | != cmd)) | 2018 | != cmd)) |
2019 | { | 2019 | { |
2020 | if(cmd->request->flags & REQ_CMD) { | 2020 | if(blk_fs_request(cmd->request)) { |
2021 | sun3scsi_dma_setup(d, count, | 2021 | sun3scsi_dma_setup(d, count, |
2022 | rq_data_dir(cmd->request)); | 2022 | rq_data_dir(cmd->request)); |
2023 | sun3_dma_setup_done = cmd; | 2023 | sun3_dma_setup_done = cmd; |
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c index 837173415d4..44a99aeb818 100644 --- a/drivers/scsi/sun3_scsi.c +++ b/drivers/scsi/sun3_scsi.c | |||
@@ -524,7 +524,7 @@ static inline unsigned long sun3scsi_dma_residual(struct Scsi_Host *instance) | |||
524 | static inline unsigned long sun3scsi_dma_xfer_len(unsigned long wanted, Scsi_Cmnd *cmd, | 524 | static inline unsigned long sun3scsi_dma_xfer_len(unsigned long wanted, Scsi_Cmnd *cmd, |
525 | int write_flag) | 525 | int write_flag) |
526 | { | 526 | { |
527 | if(cmd->request->flags & REQ_CMD) | 527 | if(blk_fs_request(cmd->request)) |
528 | return wanted; | 528 | return wanted; |
529 | else | 529 | else |
530 | return 0; | 530 | return 0; |
diff --git a/drivers/scsi/sun3_scsi_vme.c b/drivers/scsi/sun3_scsi_vme.c index 008a82ab852..f5742b84b27 100644 --- a/drivers/scsi/sun3_scsi_vme.c +++ b/drivers/scsi/sun3_scsi_vme.c | |||
@@ -458,7 +458,7 @@ static inline unsigned long sun3scsi_dma_residual(struct Scsi_Host *instance) | |||
458 | static inline unsigned long sun3scsi_dma_xfer_len(unsigned long wanted, Scsi_Cmnd *cmd, | 458 | static inline unsigned long sun3scsi_dma_xfer_len(unsigned long wanted, Scsi_Cmnd *cmd, |
459 | int write_flag) | 459 | int write_flag) |
460 | { | 460 | { |
461 | if(cmd->request->flags & REQ_CMD) | 461 | if(blk_fs_request(cmd->request)) |
462 | return wanted; | 462 | return wanted; |
463 | else | 463 | else |
464 | return 0; | 464 | return 0; |