Re: [PATCH 08/10] block: cleanup rq->data_len usages

James Bottomley
2009-04-30T15:37:24Z

On Thu, 2009-04-30 at 16:47 +0300, Boaz Harrosh wrote:
> > @@ -966,7 +965,7 @@ static int scsi_init_sgtable(struct request
> *req, struct scsi_data_buffer *sdb,
> > BUG_ON(count > sdb->table.nents);
> > sdb->table.nents = count;
> > if (blk_pc_request(req))
> > - sdb->length = req->data_len;
> > + sdb->length = blk_rq_bytes(req);
> > else
> > sdb->length = blk_rq_sectors(req) << 9;
>
> Is this true. I thought they must be the same now. I was actually
> anticipating this if() removed.

Me too ... there's one of these in scsi_lib.c as well.

The difference comes because filesystem requests are always in sectors,
but BLOCK_PC requests are always in bytes .... we should be able to wrap
the accessors so they do the correct conversions.

James