Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0790410 authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe
Browse files

block: cleanup rq->data_len usages



With recent unification of fields, it's now guaranteed that
rq->data_len always equals blk_rq_bytes().  Convert all non-IDE direct
users to accessors.  IDE will be converted in a separate patch.

Boaz: spotted incorrect data_len/resid_len conversion in osd.

[ Impact: convert direct rq->data_len usages to blk_rq_bytes() ]

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Pete Zaitcev <zaitcev@redhat.com>
Cc: Eric Moore <Eric.Moore@lsi.com>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Cc: Darrick J. Wong <djwong@us.ibm.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Eric Moore <Eric.Moore@lsi.com>
Cc: Boaz Harrosh <bharrosh@panasas.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 2e46e8b2
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1084,7 +1084,7 @@ static int atapi_drain_needed(struct request *rq)
	if (likely(!blk_pc_request(rq)))
	if (likely(!blk_pc_request(rq)))
		return 0;
		return 0;


	if (!rq->data_len || (rq->cmd_flags & REQ_RW))
	if (!blk_rq_bytes(rq) || (rq->cmd_flags & REQ_RW))
		return 0;
		return 0;


	return atapi_cmd_type(rq->cmd[0]) == ATAPI_MISC;
	return atapi_cmd_type(rq->cmd[0]) == ATAPI_MISC;
+4 −4
Original line number Original line Diff line number Diff line
@@ -747,7 +747,7 @@ static void ub_cmd_build_packet(struct ub_dev *sc, struct ub_lun *lun,
{
{
	struct request *rq = urq->rq;
	struct request *rq = urq->rq;


	if (rq->data_len == 0) {
	if (blk_rq_bytes(rq) == 0) {
		cmd->dir = UB_DIR_NONE;
		cmd->dir = UB_DIR_NONE;
	} else {
	} else {
		if (rq_data_dir(rq) == WRITE)
		if (rq_data_dir(rq) == WRITE)
@@ -762,7 +762,7 @@ static void ub_cmd_build_packet(struct ub_dev *sc, struct ub_lun *lun,
	memcpy(&cmd->cdb, rq->cmd, rq->cmd_len);
	memcpy(&cmd->cdb, rq->cmd, rq->cmd_len);
	cmd->cdb_len = rq->cmd_len;
	cmd->cdb_len = rq->cmd_len;


	cmd->len = rq->data_len;
	cmd->len = blk_rq_bytes(rq);


	/*
	/*
	 * To reapply this to every URB is not as incorrect as it looks.
	 * To reapply this to every URB is not as incorrect as it looks.
@@ -783,8 +783,8 @@ static void ub_rw_cmd_done(struct ub_dev *sc, struct ub_scsi_cmd *cmd)


	if (cmd->error == 0) {
	if (cmd->error == 0) {
		if (blk_pc_request(rq)) {
		if (blk_pc_request(rq)) {
			if (cmd->act_len < rq->data_len)
			if (cmd->act_len < blk_rq_bytes(rq))
				rq->resid_len = rq->data_len - cmd->act_len;
				rq->resid_len = blk_rq_bytes(rq) - cmd->act_len;
			scsi_status = 0;
			scsi_status = 0;
		} else {
		} else {
			if (cmd->act_len != cmd->len) {
			if (cmd->act_len != cmd->len) {
+10 −10
Original line number Original line Diff line number Diff line
@@ -1277,8 +1277,8 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
	/* do we need to support multiple segments? */
	/* do we need to support multiple segments? */
	if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) {
	if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) {
		printk(MYIOC_s_ERR_FMT "%s: multiple segments req %u %u, rsp %u %u\n",
		printk(MYIOC_s_ERR_FMT "%s: multiple segments req %u %u, rsp %u %u\n",
		    ioc->name, __func__, req->bio->bi_vcnt, req->data_len,
		    ioc->name, __func__, req->bio->bi_vcnt, blk_rq_bytes(req),
		    rsp->bio->bi_vcnt, rsp->data_len);
		    rsp->bio->bi_vcnt, blk_rq_bytes(rsp));
		return -EINVAL;
		return -EINVAL;
	}
	}


@@ -1295,7 +1295,7 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
	smpreq = (SmpPassthroughRequest_t *)mf;
	smpreq = (SmpPassthroughRequest_t *)mf;
	memset(smpreq, 0, sizeof(*smpreq));
	memset(smpreq, 0, sizeof(*smpreq));


	smpreq->RequestDataLength = cpu_to_le16(req->data_len - 4);
	smpreq->RequestDataLength = cpu_to_le16(blk_rq_bytes(req) - 4);
	smpreq->Function = MPI_FUNCTION_SMP_PASSTHROUGH;
	smpreq->Function = MPI_FUNCTION_SMP_PASSTHROUGH;


	if (rphy)
	if (rphy)
@@ -1321,10 +1321,10 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
		       MPI_SGE_FLAGS_END_OF_BUFFER |
		       MPI_SGE_FLAGS_END_OF_BUFFER |
		       MPI_SGE_FLAGS_DIRECTION |
		       MPI_SGE_FLAGS_DIRECTION |
		       mpt_addr_size()) << MPI_SGE_FLAGS_SHIFT;
		       mpt_addr_size()) << MPI_SGE_FLAGS_SHIFT;
	flagsLength |= (req->data_len - 4);
	flagsLength |= (blk_rq_bytes(req) - 4);


	dma_addr_out = pci_map_single(ioc->pcidev, bio_data(req->bio),
	dma_addr_out = pci_map_single(ioc->pcidev, bio_data(req->bio),
				      req->data_len, PCI_DMA_BIDIRECTIONAL);
				      blk_rq_bytes(req), PCI_DMA_BIDIRECTIONAL);
	if (!dma_addr_out)
	if (!dma_addr_out)
		goto put_mf;
		goto put_mf;
	mpt_add_sge(psge, flagsLength, dma_addr_out);
	mpt_add_sge(psge, flagsLength, dma_addr_out);
@@ -1332,9 +1332,9 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,


	/* response */
	/* response */
	flagsLength = MPT_SGE_FLAGS_SSIMPLE_READ;
	flagsLength = MPT_SGE_FLAGS_SSIMPLE_READ;
	flagsLength |= rsp->data_len + 4;
	flagsLength |= blk_rq_bytes(rsp) + 4;
	dma_addr_in =  pci_map_single(ioc->pcidev, bio_data(rsp->bio),
	dma_addr_in =  pci_map_single(ioc->pcidev, bio_data(rsp->bio),
				      rsp->data_len, PCI_DMA_BIDIRECTIONAL);
				      blk_rq_bytes(rsp), PCI_DMA_BIDIRECTIONAL);
	if (!dma_addr_in)
	if (!dma_addr_in)
		goto unmap;
		goto unmap;
	mpt_add_sge(psge, flagsLength, dma_addr_in);
	mpt_add_sge(psge, flagsLength, dma_addr_in);
@@ -1357,7 +1357,7 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
		smprep = (SmpPassthroughReply_t *)ioc->sas_mgmt.reply;
		smprep = (SmpPassthroughReply_t *)ioc->sas_mgmt.reply;
		memcpy(req->sense, smprep, sizeof(*smprep));
		memcpy(req->sense, smprep, sizeof(*smprep));
		req->sense_len = sizeof(*smprep);
		req->sense_len = sizeof(*smprep);
		rsp->resid_len = rsp->data_len - smprep->ResponseDataLength;
		rsp->resid_len = blk_rq_bytes(rsp) - smprep->ResponseDataLength;
	} else {
	} else {
		printk(MYIOC_s_ERR_FMT "%s: smp passthru reply failed to be returned\n",
		printk(MYIOC_s_ERR_FMT "%s: smp passthru reply failed to be returned\n",
		    ioc->name, __func__);
		    ioc->name, __func__);
@@ -1365,10 +1365,10 @@ static int mptsas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
	}
	}
unmap:
unmap:
	if (dma_addr_out)
	if (dma_addr_out)
		pci_unmap_single(ioc->pcidev, dma_addr_out, req->data_len,
		pci_unmap_single(ioc->pcidev, dma_addr_out, blk_rq_bytes(req),
				 PCI_DMA_BIDIRECTIONAL);
				 PCI_DMA_BIDIRECTIONAL);
	if (dma_addr_in)
	if (dma_addr_in)
		pci_unmap_single(ioc->pcidev, dma_addr_in, rsp->data_len,
		pci_unmap_single(ioc->pcidev, dma_addr_in, blk_rq_bytes(rsp),
				 PCI_DMA_BIDIRECTIONAL);
				 PCI_DMA_BIDIRECTIONAL);
put_mf:
put_mf:
	if (mf)
	if (mf)
+1 −1
Original line number Original line Diff line number Diff line
@@ -430,7 +430,7 @@ static void i2o_block_end_request(struct request *req, int error,
		int leftover = (blk_rq_sectors(req) << KERNEL_SECTOR_SHIFT);
		int leftover = (blk_rq_sectors(req) << KERNEL_SECTOR_SHIFT);


		if (blk_pc_request(req))
		if (blk_pc_request(req))
			leftover = req->data_len;
			leftover = blk_rq_bytes(req);


		if (error)
		if (error)
			blk_end_request(req, -EIO, leftover);
			blk_end_request(req, -EIO, leftover);
+4 −4
Original line number Original line Diff line number Diff line
@@ -1927,13 +1927,13 @@ int sas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
	/* do we need to support multiple segments? */
	/* do we need to support multiple segments? */
	if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) {
	if (req->bio->bi_vcnt > 1 || rsp->bio->bi_vcnt > 1) {
		printk("%s: multiple segments req %u %u, rsp %u %u\n",
		printk("%s: multiple segments req %u %u, rsp %u %u\n",
		       __func__, req->bio->bi_vcnt, req->data_len,
		       __func__, req->bio->bi_vcnt, blk_rq_bytes(req),
		       rsp->bio->bi_vcnt, rsp->data_len);
		       rsp->bio->bi_vcnt, blk_rq_bytes(rsp));
		return -EINVAL;
		return -EINVAL;
	}
	}


	ret = smp_execute_task(dev, bio_data(req->bio), req->data_len,
	ret = smp_execute_task(dev, bio_data(req->bio), blk_rq_bytes(req),
			       bio_data(rsp->bio), rsp->data_len);
			       bio_data(rsp->bio), blk_rq_bytes(rsp));
	if (ret > 0) {
	if (ret > 0) {
		/* positive number is the untransferred residual */
		/* positive number is the untransferred residual */
		rsp->resid_len = ret;
		rsp->resid_len = ret;
Loading