From bcc9ad6381328ad94f391a5db1e12a77668d5348 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Tue, 2 Oct 2012 18:57:35 +0000 Subject: [PATCH] Cleanup git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4543 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/include/scst.h | 5 ++--- scst/src/dev_handlers/scst_vdisk.c | 34 +++++++++++++++--------------- scst/src/scst_lib.c | 6 +++--- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/scst/include/scst.h b/scst/include/scst.h index ff62097ca..7bf1d6c5a 100644 --- a/scst/include/scst.h +++ b/scst/include/scst.h @@ -2034,7 +2034,7 @@ struct scst_cmd { int expected_transfer_len; int expected_out_transfer_len; /* for bidi writes */ - int64_t lba; /* LBA of this cmd in blocks */ + int64_t lba; /* LBA of this cmd */ /* * Cmd data length. Could be different from bufflen for commands like @@ -4418,9 +4418,8 @@ int scst_scsi_exec_async(struct scst_cmd *cmd, void *data, #endif struct scst_data_descriptor { - /* Both fields in blocks */ uint64_t sdd_lba; - uint64_t sdd_len; + uint64_t sdd_blocks; }; void scst_write_same(struct scst_cmd *cmd); diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 4a59449da..2da6be8df 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -1886,9 +1886,8 @@ static uint64_t vdisk_gen_dev_id_num(const char *virt_dev_name) #endif } -/* start and len in blocks */ static int vdisk_unmap_range(struct scst_cmd *cmd, - struct scst_vdisk_dev *virt_dev, uint64_t start, uint32_t len) + struct scst_vdisk_dev *virt_dev, uint64_t start_lba, uint32_t blocks) { int res, err; struct file *fd = virt_dev->fd; @@ -1896,11 +1895,11 @@ static int vdisk_unmap_range(struct scst_cmd *cmd, TRACE_ENTRY(); - if (len == 0) + if (blocks == 0) goto success; - if ((start > virt_dev->nblocks) || - ((start + len) > virt_dev->nblocks)) { + if ((start_lba > virt_dev->nblocks) || + ((start_lba + blocks) > virt_dev->nblocks)) { PRINT_ERROR("Device %s: attempt to write beyond max " "size", virt_dev->name); scst_set_cmd_error(cmd, @@ -1910,28 +1909,28 @@ static int vdisk_unmap_range(struct scst_cmd *cmd, } TRACE_DBG("Unmapping lba %lld (blocks %lld)", - (unsigned long long)start, (unsigned long long)len); + (unsigned long long)start_lba, (unsigned long long)blocks); if (virt_dev->blockio) { #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 27) gfp_t gfp = scst_cmd_get_gfp_flags(cmd); #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 31) - err = blkdev_issue_discard(inode->i_bdev, start, len, gfp); + err = blkdev_issue_discard(inode->i_bdev, start_lba, blocks, gfp); #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) \ && !(LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 34) \ && defined(CONFIG_SUSE_KERNEL)) - err = blkdev_issue_discard(inode->i_bdev, start, len, + err = blkdev_issue_discard(inode->i_bdev, start_lba, blocks, gfp, DISCARD_FL_WAIT); #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37) - err = blkdev_issue_discard(inode->i_bdev, start, len, + err = blkdev_issue_discard(inode->i_bdev, start_lba, blocks, gfp, BLKDEV_IFL_WAIT); #else - err = blkdev_issue_discard(inode->i_bdev, start, len, gfp, 0); + err = blkdev_issue_discard(inode->i_bdev, start_lba, blocks, gfp, 0); #endif if (unlikely(err != 0)) { PRINT_ERROR("blkdev_issue_discard() for " - "LBA %lld len %d failed: %d", - (unsigned long long)start, len, err); + "LBA %lld, blocks %d failed: %d", + (unsigned long long)start_lba, blocks, err); scst_set_cmd_error(cmd, SCST_LOAD_SENSE(scst_sense_write_error)); res = -EIO; @@ -1946,8 +1945,8 @@ static int vdisk_unmap_range(struct scst_cmd *cmd, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) struct scst_device *dev = cmd->dev; const int block_shift = dev->block_shift; - const loff_t s = start << block_shift; - const loff_t l = len << block_shift; + const loff_t s = start_lba << block_shift; + const loff_t l = blocks << block_shift; TRACE_DBG("Fallocating range %lld, len %lld", (unsigned long long)s, (unsigned long long)l); @@ -1956,8 +1955,8 @@ static int vdisk_unmap_range(struct scst_cmd *cmd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, s, l); if (unlikely(err != 0)) { PRINT_ERROR("fallocate() for LBA %lld len %lld " - "failed: %d", (unsigned long long)start, - (unsigned long long)len, err); + "failed: %d", (unsigned long long)start_lba, + (unsigned long long)blocks, err); scst_set_cmd_error(cmd, SCST_LOAD_SENSE(scst_sense_write_error)); res = -EIO; @@ -2070,7 +2069,8 @@ static enum compl_status_e vdisk_exec_unmap(struct vdisk_cmd_params *p) goto out; } - rc = vdisk_unmap_range(cmd, virt_dev, pd[i].sdd_lba, pd[i].sdd_len); + rc = vdisk_unmap_range(cmd, virt_dev, pd[i].sdd_lba, + pd[i].sdd_blocks); if (rc != 0) goto out; } diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index e9f327328..cb3c0de19 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -8668,10 +8668,10 @@ static int scst_parse_unmap_descriptors(struct scst_cmd *cmd) struct scst_data_descriptor *d = &pd[i]; d->sdd_lba = get_unaligned_be64(&address[offset]); offset += 8; - d->sdd_len = get_unaligned_be32(&address[offset]); + d->sdd_blocks = get_unaligned_be32(&address[offset]); offset += 8; - TRACE_DBG("i %d, lba %lld, len %lld", i, - (long long)d->sdd_lba, (long long)d->sdd_len); + TRACE_DBG("i %d, lba %lld, blocks %lld", i, + (long long)d->sdd_lba, (long long)d->sdd_blocks); i++; }