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

Jens Axboe
2009-05-01T18:28:21Z

On Thu, Apr 30 2009, James Bottomley wrote:
> 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.

blk_rq_bytes() already takes care of this, it can be used on any type
request. So just kill the if/else.

--
Jens Axboe