[stgt] [PATCH] tgt: Add usage of struct sg_iovec in bs_sg_cmd_submit()
Nicholas A. Bellinger
nab at linux-iscsi.org
Thu Jun 17 07:42:01 CEST 2010
From: Nicholas Bellinger <nab at linux-iscsi.org>
This patch adds struct scsi_cmd->cmd_sg_iovec usage for bs_sg and updates
bs_sg_cmd_submit() to set iovec base and len using STGT macros and set
pointer assignment to io_hdr.dxferp.
Signed-off-by: Nicholas A. Bellinger <nab at linux-iscsi.org>
---
usr/bs_sg.c | 10 ++++++++--
usr/scsi_cmnd.h | 4 ++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/usr/bs_sg.c b/usr/bs_sg.c
index f01a3ef..bb03d46 100644
--- a/usr/bs_sg.c
+++ b/usr/bs_sg.c
@@ -132,11 +132,17 @@ static int bs_sg_cmd_submit(struct scsi_cmd *cmd)
if (scsi_get_data_dir(cmd) == DATA_WRITE) {
io_hdr.dxfer_direction = SG_DXFER_TO_DEV;
io_hdr.dxfer_len = scsi_get_out_length(cmd);
- io_hdr.dxferp = (void *)scsi_get_out_buffer(cmd);
+ cmd->cmd_sg_iovec.iov_len = scsi_get_out_length(cmd);
+ cmd->cmd_sg_iovec.iov_base = scsi_get_out_buffer(cmd);
+ io_hdr.dxferp = &cmd->cmd_sg_iovec;
+ io_hdr.iovec_count = 1;
} else {
io_hdr.dxfer_direction = SG_DXFER_FROM_DEV;
io_hdr.dxfer_len = scsi_get_in_length(cmd);
- io_hdr.dxferp = (void *)scsi_get_in_buffer(cmd);
+ cmd->cmd_sg_iovec.iov_len = scsi_get_in_length(cmd);
+ cmd->cmd_sg_iovec.iov_base = scsi_get_in_buffer(cmd);
+ io_hdr.dxferp = &cmd->cmd_sg_iovec;
+ io_hdr.iovec_count = 1;
}
io_hdr.mx_sb_len = sizeof(cmd->sense_buffer);
io_hdr.sbp = cmd->sense_buffer;
diff --git a/usr/scsi_cmnd.h b/usr/scsi_cmnd.h
index 011f3e6..fc4861a 100644
--- a/usr/scsi_cmnd.h
+++ b/usr/scsi_cmnd.h
@@ -17,6 +17,8 @@ struct scsi_data_buffer {
uint64_t buffer;
};
+#include <scsi/sg.h>
+
struct scsi_cmd {
struct target *c_target;
/* linked it_nexus->cmd_hash_list */
@@ -31,6 +33,8 @@ struct scsi_cmd {
enum data_direction data_dir;
struct scsi_data_buffer in_sdb;
struct scsi_data_buffer out_sdb;
+ /* Used for bs_sg.c:bs_bs_cmd_submit() */
+ struct sg_iovec cmd_sg_iovec;
uint64_t cmd_itn_id;
uint64_t offset;
--
1.5.6.5
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list