aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_tgt_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_tgt_lib.c')
-rw-r--r--drivers/scsi/scsi_tgt_lib.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/drivers/scsi/scsi_tgt_lib.c b/drivers/scsi/scsi_tgt_lib.c
index a91761c3645f..93ece8f4e5de 100644
--- a/drivers/scsi/scsi_tgt_lib.c
+++ b/drivers/scsi/scsi_tgt_lib.c
@@ -180,7 +180,7 @@ static void scsi_tgt_cmd_destroy(struct work_struct *work)
180 container_of(work, struct scsi_tgt_cmd, work); 180 container_of(work, struct scsi_tgt_cmd, work);
181 struct scsi_cmnd *cmd = tcmd->rq->special; 181 struct scsi_cmnd *cmd = tcmd->rq->special;
182 182
183 dprintk("cmd %p %d %lu\n", cmd, cmd->sc_data_direction, 183 dprintk("cmd %p %d %u\n", cmd, cmd->sc_data_direction,
184 rq_data_dir(cmd->request)); 184 rq_data_dir(cmd->request));
185 scsi_unmap_user_pages(tcmd); 185 scsi_unmap_user_pages(tcmd);
186 scsi_host_put_command(scsi_tgt_cmd_to_host(cmd), cmd); 186 scsi_host_put_command(scsi_tgt_cmd_to_host(cmd), cmd);
@@ -327,11 +327,11 @@ static void scsi_tgt_cmd_done(struct scsi_cmnd *cmd)
327{ 327{
328 struct scsi_tgt_cmd *tcmd = cmd->request->end_io_data; 328 struct scsi_tgt_cmd *tcmd = cmd->request->end_io_data;
329 329
330 dprintk("cmd %p %lu\n", cmd, rq_data_dir(cmd->request)); 330 dprintk("cmd %p %u\n", cmd, rq_data_dir(cmd->request));
331 331
332 scsi_tgt_uspace_send_status(cmd, tcmd->itn_id, tcmd->tag); 332 scsi_tgt_uspace_send_status(cmd, tcmd->itn_id, tcmd->tag);
333 333
334 if (cmd->request_buffer) 334 if (scsi_sglist(cmd))
335 scsi_free_sgtable(cmd); 335 scsi_free_sgtable(cmd);
336 336
337 queue_work(scsi_tgtd, &tcmd->work); 337 queue_work(scsi_tgtd, &tcmd->work);
@@ -342,7 +342,7 @@ static int scsi_tgt_transfer_response(struct scsi_cmnd *cmd)
342 struct Scsi_Host *shost = scsi_tgt_cmd_to_host(cmd); 342 struct Scsi_Host *shost = scsi_tgt_cmd_to_host(cmd);
343 int err; 343 int err;
344 344
345 dprintk("cmd %p %lu\n", cmd, rq_data_dir(cmd->request)); 345 dprintk("cmd %p %u\n", cmd, rq_data_dir(cmd->request));
346 346
347 err = shost->hostt->transfer_response(cmd, scsi_tgt_cmd_done); 347 err = shost->hostt->transfer_response(cmd, scsi_tgt_cmd_done);
348 switch (err) { 348 switch (err) {
@@ -365,16 +365,12 @@ static int scsi_tgt_init_cmd(struct scsi_cmnd *cmd, gfp_t gfp_mask)
365 365
366 cmd->request_bufflen = rq->data_len; 366 cmd->request_bufflen = rq->data_len;
367 367
368 dprintk("cmd %p cnt %d %lu\n", cmd, cmd->use_sg, rq_data_dir(rq)); 368 dprintk("cmd %p cnt %d %lu\n", cmd, scsi_sg_count(cmd),
369 count = blk_rq_map_sg(rq->q, rq, cmd->request_buffer); 369 rq_data_dir(rq));
370 if (likely(count <= cmd->use_sg)) { 370 count = blk_rq_map_sg(rq->q, rq, scsi_sglist(cmd));
371 cmd->use_sg = count; 371 BUG_ON(count > cmd->use_sg);
372 return 0; 372 cmd->use_sg = count;
373 } 373 return 0;
374
375 eprintk("cmd %p cnt %d\n", cmd, cmd->use_sg);
376 scsi_free_sgtable(cmd);
377 return -EINVAL;
378} 374}
379 375
380/* TODO: test this crap and replace bio_map_user with new interface maybe */ 376/* TODO: test this crap and replace bio_map_user with new interface maybe */
@@ -496,8 +492,8 @@ int scsi_tgt_kspace_exec(int host_no, u64 itn_id, int result, u64 tag,
496 } 492 }
497 cmd = rq->special; 493 cmd = rq->special;
498 494
499 dprintk("cmd %p scb %x result %d len %d bufflen %u %lu %x\n", 495 dprintk("cmd %p scb %x result %d len %d bufflen %u %u %x\n",
500 cmd, cmd->cmnd[0], result, len, cmd->request_bufflen, 496 cmd, cmd->cmnd[0], result, len, scsi_bufflen(cmd),
501 rq_data_dir(rq), cmd->cmnd[0]); 497 rq_data_dir(rq), cmd->cmnd[0]);
502 498
503 if (result == TASK_ABORTED) { 499 if (result == TASK_ABORTED) {
@@ -617,7 +613,7 @@ int scsi_tgt_kspace_it_nexus_rsp(int host_no, u64 itn_id, int result)
617 struct Scsi_Host *shost; 613 struct Scsi_Host *shost;
618 int err = -EINVAL; 614 int err = -EINVAL;
619 615
620 dprintk("%d %d %llx\n", host_no, result, (unsigned long long) mid); 616 dprintk("%d %d%llx\n", host_no, result, (unsigned long long)itn_id);
621 617
622 shost = scsi_host_lookup(host_no); 618 shost = scsi_host_lookup(host_no);
623 if (IS_ERR(shost)) { 619 if (IS_ERR(shost)) {