From 54d8aa0ab6758de94e17432ec89ecd8fc0cc101d Mon Sep 17 00:00:00 2001 From: Peter Lieven Date: Sun, 21 Oct 2012 08:17:40 +0200 Subject: [PATCH] LD_ISCSI: use read16 instead of read10 Use READ16 to support for large volumes. READ16 takes a 64bit LBA offset instead of 32bit. --- src/ld_iscsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ld_iscsi.c b/src/ld_iscsi.c index b9397a8..118a5d0 100644 --- a/src/ld_iscsi.c +++ b/src/ld_iscsi.c @@ -260,7 +260,7 @@ ssize_t read(int fd, void *buf, size_t count) { if ((iscsi_fd_list[fd].is_iscsi == 1) && (iscsi_fd_list[fd].in_flight == 0)) { uint64_t offset; - uint32_t num_blocks, lba; + uint64_t num_blocks, lba; struct scsi_task *task; if (iscsi_fd_list[fd].dup2fd >= 0) { @@ -280,10 +280,10 @@ ssize_t read(int fd, void *buf, size_t count) count = num_blocks * iscsi_fd_list[fd].block_size; } - LD_ISCSI_DPRINTF(4,"read10_sync: lun %d, lba %u, num_blocks: %u, block_size: %d, offset: %lu count: %lu",iscsi_fd_list[fd].lun,lba,num_blocks,iscsi_fd_list[fd].block_size,offset,count); + LD_ISCSI_DPRINTF(4,"read16_sync: lun %d, lba %lu, num_blocks: %lu, block_size: %d, offset: %lu count: %lu",iscsi_fd_list[fd].lun,lba,num_blocks,iscsi_fd_list[fd].block_size,offset,count); iscsi_fd_list[fd].in_flight = 1; - task = iscsi_read10_sync(iscsi_fd_list[fd].iscsi, iscsi_fd_list[fd].lun, lba, num_blocks * iscsi_fd_list[fd].block_size, iscsi_fd_list[fd].block_size, 0, 0, 0, 0, 0); + task = iscsi_read16_sync(iscsi_fd_list[fd].iscsi, iscsi_fd_list[fd].lun, lba, num_blocks * iscsi_fd_list[fd].block_size, iscsi_fd_list[fd].block_size, 0, 0, 0, 0, 0); iscsi_fd_list[fd].in_flight = 0; if (task == NULL || task->status != SCSI_STATUS_GOOD) { LD_ISCSI_DPRINTF(0,"failed to send read10 command");