Commit 1011c1b9 authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe

block: blk_rq_[cur_]_{sectors|bytes}() usage cleanup

With the previous changes, the followings are now guaranteed for all
requests in any valid state.

* blk_rq_sectors() == blk_rq_bytes() >> 9
* blk_rq_cur_sectors() == blk_rq_cur_bytes() >> 9

Clean up accessor usages.  Notable changes are

* nbd,i2o_block: end_all used instead of explicit byte count
* scsi_lib: unnecessary conditional on request type removed

[ Impact: cleanup ]
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Paul Clements <paul.clements@steeleye.com>
Cc: Pete Zaitcev <zaitcev@redhat.com>
Cc: Alex Dubov <oakad@yahoo.com>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent a2dec7b3
...@@ -2512,8 +2512,7 @@ static void copy_buffer(int ssize, int max_sector, int max_sector_2) ...@@ -2512,8 +2512,7 @@ static void copy_buffer(int ssize, int max_sector, int max_sector_2)
remaining = current_count_sectors << 9; remaining = current_count_sectors << 9;
#ifdef FLOPPY_SANITY_CHECK #ifdef FLOPPY_SANITY_CHECK
if ((remaining >> 9) > blk_rq_sectors(current_req) && if (remaining > blk_rq_bytes(current_req) && CT(COMMAND) == FD_WRITE) {
CT(COMMAND) == FD_WRITE) {
DPRINT("in copy buffer\n"); DPRINT("in copy buffer\n");
printk("current_count_sectors=%ld\n", current_count_sectors); printk("current_count_sectors=%ld\n", current_count_sectors);
printk("remaining=%d\n", remaining >> 9); printk("remaining=%d\n", remaining >> 9);
...@@ -2530,7 +2529,7 @@ static void copy_buffer(int ssize, int max_sector, int max_sector_2) ...@@ -2530,7 +2529,7 @@ static void copy_buffer(int ssize, int max_sector, int max_sector_2)
dma_buffer = floppy_track_buffer + ((fsector_t - buffer_min) << 9); dma_buffer = floppy_track_buffer + ((fsector_t - buffer_min) << 9);
size = blk_rq_cur_sectors(current_req) << 9; size = blk_rq_cur_bytes(current_req);
rq_for_each_segment(bv, current_req, iter) { rq_for_each_segment(bv, current_req, iter) {
if (!remaining) if (!remaining)
...@@ -2879,7 +2878,7 @@ static int make_raw_rw_request(void) ...@@ -2879,7 +2878,7 @@ static int make_raw_rw_request(void)
printk("write\n"); printk("write\n");
return 0; return 0;
} }
} else if (raw_cmd->length > blk_rq_sectors(current_req) << 9 || } else if (raw_cmd->length > blk_rq_bytes(current_req) ||
current_count_sectors > blk_rq_sectors(current_req)) { current_count_sectors > blk_rq_sectors(current_req)) {
DPRINT("buffer overrun in direct transfer\n"); DPRINT("buffer overrun in direct transfer\n");
return 0; return 0;
......
...@@ -110,7 +110,7 @@ static void nbd_end_request(struct request *req) ...@@ -110,7 +110,7 @@ static void nbd_end_request(struct request *req)
req, error ? "failed" : "done"); req, error ? "failed" : "done");
spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags);
__blk_end_request(req, error, blk_rq_sectors(req) << 9); __blk_end_request_all(req, error);
spin_unlock_irqrestore(q->queue_lock, flags); spin_unlock_irqrestore(q->queue_lock, flags);
} }
...@@ -231,7 +231,7 @@ static int nbd_send_req(struct nbd_device *lo, struct request *req) ...@@ -231,7 +231,7 @@ static int nbd_send_req(struct nbd_device *lo, struct request *req)
{ {
int result, flags; int result, flags;
struct nbd_request request; struct nbd_request request;
unsigned long size = blk_rq_sectors(req) << 9; unsigned long size = blk_rq_bytes(req);
request.magic = htonl(NBD_REQUEST_MAGIC); request.magic = htonl(NBD_REQUEST_MAGIC);
request.type = htonl(nbd_cmd(req)); request.type = htonl(nbd_cmd(req));
...@@ -243,7 +243,7 @@ static int nbd_send_req(struct nbd_device *lo, struct request *req) ...@@ -243,7 +243,7 @@ static int nbd_send_req(struct nbd_device *lo, struct request *req)
lo->disk->disk_name, req, lo->disk->disk_name, req,
nbdcmd_to_ascii(nbd_cmd(req)), nbdcmd_to_ascii(nbd_cmd(req)),
(unsigned long long)blk_rq_pos(req) << 9, (unsigned long long)blk_rq_pos(req) << 9,
blk_rq_sectors(req) << 9); blk_rq_bytes(req));
result = sock_xmit(lo, 1, &request, sizeof(request), result = sock_xmit(lo, 1, &request, sizeof(request),
(nbd_cmd(req) == NBD_CMD_WRITE) ? MSG_MORE : 0); (nbd_cmd(req) == NBD_CMD_WRITE) ? MSG_MORE : 0);
if (result <= 0) { if (result <= 0) {
......
...@@ -739,7 +739,7 @@ static void ub_cmd_build_block(struct ub_dev *sc, struct ub_lun *lun, ...@@ -739,7 +739,7 @@ static void ub_cmd_build_block(struct ub_dev *sc, struct ub_lun *lun,
cmd->cdb[8] = nblks; cmd->cdb[8] = nblks;
cmd->cdb_len = 10; cmd->cdb_len = 10;
cmd->len = blk_rq_sectors(rq) * 512; cmd->len = blk_rq_bytes(rq);
} }
static void ub_cmd_build_packet(struct ub_dev *sc, struct ub_lun *lun, static void ub_cmd_build_packet(struct ub_dev *sc, struct ub_lun *lun,
......
...@@ -72,7 +72,7 @@ static void do_z2_request(struct request_queue *q) ...@@ -72,7 +72,7 @@ static void do_z2_request(struct request_queue *q)
struct request *req; struct request *req;
while ((req = elv_next_request(q)) != NULL) { while ((req = elv_next_request(q)) != NULL) {
unsigned long start = blk_rq_pos(req) << 9; unsigned long start = blk_rq_pos(req) << 9;
unsigned long len = blk_rq_cur_sectors(req) << 9; unsigned long len = blk_rq_cur_bytes(req);
if (start + len > z2ram_size) { if (start + len > z2ram_size) {
printk( KERN_ERR DEVICE_NAME ": bad access: block=%lu, count=%u\n", printk( KERN_ERR DEVICE_NAME ": bad access: block=%lu, count=%u\n",
......
...@@ -680,7 +680,7 @@ try_again: ...@@ -680,7 +680,7 @@ try_again:
t_sec = blk_rq_pos(msb->block_req) << 9; t_sec = blk_rq_pos(msb->block_req) << 9;
sector_div(t_sec, msb->page_size); sector_div(t_sec, msb->page_size);
count = blk_rq_sectors(msb->block_req) << 9; count = blk_rq_bytes(msb->block_req);
count /= msb->page_size; count /= msb->page_size;
param.system = msb->system; param.system = msb->system;
...@@ -745,7 +745,7 @@ static int mspro_block_complete_req(struct memstick_dev *card, int error) ...@@ -745,7 +745,7 @@ static int mspro_block_complete_req(struct memstick_dev *card, int error)
t_len *= msb->page_size; t_len *= msb->page_size;
} }
} else } else
t_len = blk_rq_sectors(msb->block_req) << 9; t_len = blk_rq_bytes(msb->block_req);
dev_dbg(&card->dev, "transferred %x (%d)\n", t_len, error); dev_dbg(&card->dev, "transferred %x (%d)\n", t_len, error);
......
...@@ -426,15 +426,9 @@ static void i2o_block_end_request(struct request *req, int error, ...@@ -426,15 +426,9 @@ static void i2o_block_end_request(struct request *req, int error,
struct request_queue *q = req->q; struct request_queue *q = req->q;
unsigned long flags; unsigned long flags;
if (blk_end_request(req, error, nr_bytes)) { if (blk_end_request(req, error, nr_bytes))
int leftover = (blk_rq_sectors(req) << KERNEL_SECTOR_SHIFT);
if (blk_pc_request(req))
leftover = blk_rq_bytes(req);
if (error) if (error)
blk_end_request(req, -EIO, leftover); blk_end_request_all(req, -EIO);
}
spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags);
...@@ -832,15 +826,13 @@ static int i2o_block_transfer(struct request *req) ...@@ -832,15 +826,13 @@ static int i2o_block_transfer(struct request *req)
memcpy(mptr, cmd, 10); memcpy(mptr, cmd, 10);
mptr += 4; mptr += 4;
*mptr++ = *mptr++ = cpu_to_le32(blk_rq_bytes(req));
cpu_to_le32(blk_rq_sectors(req) << KERNEL_SECTOR_SHIFT);
} else } else
#endif #endif
{ {
msg->u.head[1] = cpu_to_le32(cmd | HOST_TID << 12 | tid); msg->u.head[1] = cpu_to_le32(cmd | HOST_TID << 12 | tid);
*mptr++ = cpu_to_le32(ctl_flags); *mptr++ = cpu_to_le32(ctl_flags);
*mptr++ = *mptr++ = cpu_to_le32(blk_rq_bytes(req));
cpu_to_le32(blk_rq_sectors(req) << KERNEL_SECTOR_SHIFT);
*mptr++ = *mptr++ =
cpu_to_le32((u32) (blk_rq_pos(req) << KERNEL_SECTOR_SHIFT)); cpu_to_le32((u32) (blk_rq_pos(req) << KERNEL_SECTOR_SHIFT));
*mptr++ = *mptr++ =
......
...@@ -48,7 +48,7 @@ static int do_blktrans_request(struct mtd_blktrans_ops *tr, ...@@ -48,7 +48,7 @@ static int do_blktrans_request(struct mtd_blktrans_ops *tr,
char *buf; char *buf;
block = blk_rq_pos(req) << 9 >> tr->blkshift; block = blk_rq_pos(req) << 9 >> tr->blkshift;
nsect = blk_rq_cur_sectors(req) << 9 >> tr->blkshift; nsect = blk_rq_cur_bytes(req) >> tr->blkshift;
buf = req->buffer; buf = req->buffer;
......
...@@ -189,7 +189,7 @@ static void jsfd_do_request(struct request_queue *q) ...@@ -189,7 +189,7 @@ static void jsfd_do_request(struct request_queue *q)
while ((req = elv_next_request(q)) != NULL) { while ((req = elv_next_request(q)) != NULL) {
struct jsfd_part *jdp = req->rq_disk->private_data; struct jsfd_part *jdp = req->rq_disk->private_data;
unsigned long offset = blk_rq_pos(req) << 9; unsigned long offset = blk_rq_pos(req) << 9;
size_t len = blk_rq_cur_sectors(req) << 9; size_t len = blk_rq_cur_bytes(req);
if ((offset + len) > jdp->dsize) { if ((offset + len) > jdp->dsize) {
__blk_end_request_cur(req, -EIO); __blk_end_request_cur(req, -EIO);
......
...@@ -546,7 +546,7 @@ static struct scsi_cmnd *scsi_end_request(struct scsi_cmnd *cmd, int error, ...@@ -546,7 +546,7 @@ static struct scsi_cmnd *scsi_end_request(struct scsi_cmnd *cmd, int error,
* to queue the remainder of them. * to queue the remainder of them.
*/ */
if (blk_end_request(req, error, bytes)) { if (blk_end_request(req, error, bytes)) {
int leftover = blk_rq_sectors(req) << 9; int leftover = blk_rq_bytes(req);
if (blk_pc_request(req)) if (blk_pc_request(req))
leftover = req->resid_len; leftover = req->resid_len;
...@@ -964,10 +964,7 @@ static int scsi_init_sgtable(struct request *req, struct scsi_data_buffer *sdb, ...@@ -964,10 +964,7 @@ static int scsi_init_sgtable(struct request *req, struct scsi_data_buffer *sdb,
count = blk_rq_map_sg(req->q, req, sdb->table.sgl); count = blk_rq_map_sg(req->q, req, sdb->table.sgl);
BUG_ON(count > sdb->table.nents); BUG_ON(count > sdb->table.nents);
sdb->table.nents = count; sdb->table.nents = count;
if (blk_pc_request(req)) sdb->length = blk_rq_bytes(req);
sdb->length = blk_rq_bytes(req);
else
sdb->length = blk_rq_sectors(req) << 9;
return BLKPREP_OK; return BLKPREP_OK;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment