Looking at REQ_TYPE_*, I see that REQ_TYPE_SENSE is only used once in an
assignment, and appears to never be tested anywhere.
Furthermore, the use of REQ_TYPE_SENSE immediately follows a previous
assignment rq->cmd_type assignment:
cdrom_queue_request_sense():
[...]
/* stuff the sense request in front of our current request */
blk_rq_init(NULL, rq);
rq->cmd_type = REQ_TYPE_ATA_PC;
rq->rq_disk = info->disk;
rq->data = sense;
rq->cmd[0] = GPCMD_REQUEST_SENSE;
rq->cmd[4] = 18;
rq->data_len = 18;
rq->cmd_type = REQ_TYPE_SENSE;
rq->cmd_flags |= REQ_PREEMPT;
[...]
First, the code assigns REQ_TYPE_ATA_PC, then without any intervening
tests or branches, it assigns REQ_TYPE_SENSE.
So, some questions...
Is REQ_TYPE_ATA_PC sufficient (i.e. the first assignment)?
Can we get rid of REQ_TYPE_SENSE?
What are the differences between REQ_TYPE_ATA_PC and REQ_TYPE_BLOCK_PC?
Would it be possible to eliminate REQ_TYPE_ATA_PC after some work, as
well?
Jeff
Jeff Garzik wrote:
> Can we get rid of REQ_TYPE_SENSE?
Strike that, I forgot about blk_sense_request()
Hi,
> What are the differences between REQ_TYPE_ATA_PC and REQ_TYPE_BLOCK_PC?
> ?Would it be possible to eliminate REQ_TYPE_ATA_PC after some work, as well?
That's the plan. However, I'd like to wait for Tejun's block patches
to get settled first,
especially the convert-to-bio from rq->data bits.
--
Regards/Gruss,
Boris