block: Remove some unnecessary bi_vcnt usage

More prep work for immutable bvecs/effecient bio splitting - usage of
bi_vcnt has to be auditing, so getting rid of all the unnecessary usage
makes that easier.

Plus, bio_segments() is really what this code wanted, as it respects the
current value of bi_idx.

Signed-off-by: Kent Overstreet <koverstreet@google.com>
CC: Jens Axboe <axboe@kernel.dk>
CC: Eric Moore <Eric.Moore@lsi.com>
CC: "James E.J. Bottomley" <JBottomley@parallels.com>
CC: linux-scsi@vger.kernel.org
This commit is contained in:
Kent Overstreet 2012-09-05 17:31:42 -07:00
Родитель 4f2ac93c17
Коммит 2f477877f8
3 изменённых файлов: 11 добавлений и 11 удалений

Просмотреть файл

@ -2235,10 +2235,10 @@ 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 (bio_segments(req->bio) > 1 || bio_segments(rsp->bio) > 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, blk_rq_bytes(req), ioc->name, __func__, bio_segments(req->bio), blk_rq_bytes(req),
rsp->bio->bi_vcnt, blk_rq_bytes(rsp)); bio_segments(rsp->bio), blk_rq_bytes(rsp));
return -EINVAL; return -EINVAL;
} }

Просмотреть файл

@ -2151,10 +2151,10 @@ 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 (bio_segments(req->bio) > 1 || bio_segments(rsp->bio) > 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, blk_rq_bytes(req), __func__, bio_segments(req->bio), blk_rq_bytes(req),
rsp->bio->bi_vcnt, blk_rq_bytes(rsp)); bio_segments(rsp->bio), blk_rq_bytes(rsp));
return -EINVAL; return -EINVAL;
} }

Просмотреть файл

@ -1939,7 +1939,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
ioc->transport_cmds.status = MPT2_CMD_PENDING; ioc->transport_cmds.status = MPT2_CMD_PENDING;
/* Check if the request is split across multiple segments */ /* Check if the request is split across multiple segments */
if (req->bio->bi_vcnt > 1) { if (bio_segments(req->bio) > 1) {
u32 offset = 0; u32 offset = 0;
/* Allocate memory and copy the request */ /* Allocate memory and copy the request */
@ -1971,7 +1971,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
/* Check if the response needs to be populated across /* Check if the response needs to be populated across
* multiple segments */ * multiple segments */
if (rsp->bio->bi_vcnt > 1) { if (bio_segments(rsp->bio) > 1) {
pci_addr_in = pci_alloc_consistent(ioc->pdev, blk_rq_bytes(rsp), pci_addr_in = pci_alloc_consistent(ioc->pdev, blk_rq_bytes(rsp),
&pci_dma_in); &pci_dma_in);
if (!pci_addr_in) { if (!pci_addr_in) {
@ -2038,7 +2038,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
sgl_flags = (MPI2_SGE_FLAGS_SIMPLE_ELEMENT | sgl_flags = (MPI2_SGE_FLAGS_SIMPLE_ELEMENT |
MPI2_SGE_FLAGS_END_OF_BUFFER | MPI2_SGE_FLAGS_HOST_TO_IOC); MPI2_SGE_FLAGS_END_OF_BUFFER | MPI2_SGE_FLAGS_HOST_TO_IOC);
sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT; sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT;
if (req->bio->bi_vcnt > 1) { if (bio_segments(req->bio) > 1) {
ioc->base_add_sg_single(psge, sgl_flags | ioc->base_add_sg_single(psge, sgl_flags |
(blk_rq_bytes(req) - 4), pci_dma_out); (blk_rq_bytes(req) - 4), pci_dma_out);
} else { } else {
@ -2054,7 +2054,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
MPI2_SGE_FLAGS_LAST_ELEMENT | MPI2_SGE_FLAGS_END_OF_BUFFER | MPI2_SGE_FLAGS_LAST_ELEMENT | MPI2_SGE_FLAGS_END_OF_BUFFER |
MPI2_SGE_FLAGS_END_OF_LIST); MPI2_SGE_FLAGS_END_OF_LIST);
sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT; sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT;
if (rsp->bio->bi_vcnt > 1) { if (bio_segments(rsp->bio) > 1) {
ioc->base_add_sg_single(psge, sgl_flags | ioc->base_add_sg_single(psge, sgl_flags |
(blk_rq_bytes(rsp) + 4), pci_dma_in); (blk_rq_bytes(rsp) + 4), pci_dma_in);
} else { } else {
@ -2099,7 +2099,7 @@ _transport_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
le16_to_cpu(mpi_reply->ResponseDataLength); le16_to_cpu(mpi_reply->ResponseDataLength);
/* check if the resp needs to be copied from the allocated /* check if the resp needs to be copied from the allocated
* pci mem */ * pci mem */
if (rsp->bio->bi_vcnt > 1) { if (bio_segments(rsp->bio) > 1) {
u32 offset = 0; u32 offset = 0;
u32 bytes_to_copy = u32 bytes_to_copy =
le16_to_cpu(mpi_reply->ResponseDataLength); le16_to_cpu(mpi_reply->ResponseDataLength);