diff options
Diffstat (limited to 'drivers/scsi/scsi_tgt_lib.c')
-rw-r--r-- | drivers/scsi/scsi_tgt_lib.c | 30 |
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)) { |