git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vxge: Fixes in isr routine
[safe/jmp/linux-2.6]
/
drivers
/
scsi
/
scsi_tgt_lib.c
diff --git
a/drivers/scsi/scsi_tgt_lib.c
b/drivers/scsi/scsi_tgt_lib.c
index
b142514
..
1030327
100644
(file)
--- a/
drivers/scsi/scsi_tgt_lib.c
+++ b/
drivers/scsi/scsi_tgt_lib.c
@@
-107,6
+107,8
@@
struct scsi_cmnd *scsi_host_get_command(struct Scsi_Host *shost,
cmd->jiffies_at_alloc = jiffies;
cmd->request = rq;
cmd->jiffies_at_alloc = jiffies;
cmd->request = rq;
+ cmd->cmnd = rq->cmd;
+
rq->special = cmd;
rq->cmd_type = REQ_TYPE_SPECIAL;
rq->cmd_flags |= REQ_TYPE_BLOCK_PC;
rq->special = cmd;
rq->cmd_type = REQ_TYPE_SPECIAL;
rq->cmd_flags |= REQ_TYPE_BLOCK_PC;
@@
-360,7
+362,7
@@
static int scsi_map_user_pages(struct scsi_tgt_cmd *tcmd, struct scsi_cmnd *cmd,
int err;
dprintk("%lx %u\n", uaddr, len);
int err;
dprintk("%lx %u\n", uaddr, len);
- err = blk_rq_map_user(q, rq,
(void *)uaddr, len
);
+ err = blk_rq_map_user(q, rq,
NULL, (void *)uaddr, len, GFP_KERNEL
);
if (err) {
/*
* TODO: need to fixup sg_tablesize, max_segment_size,
if (err) {
/*
* TODO: need to fixup sg_tablesize, max_segment_size,
@@
-381,6
+383,11
@@
static int scsi_map_user_pages(struct scsi_tgt_cmd *tcmd, struct scsi_cmnd *cmd,
scsi_release_buffers(cmd);
goto unmap_rq;
}
scsi_release_buffers(cmd);
goto unmap_rq;
}
+ /*
+ * we use REQ_TYPE_BLOCK_PC so scsi_init_io doesn't set the
+ * length for us.
+ */
+ cmd->sdb.length = blk_rq_bytes(rq);
return 0;
return 0;
@@
-453,7
+460,7
@@
int scsi_tgt_kspace_exec(int host_no, u64 itn_id, int result, u64 tag,
/* TODO: replace with a O(1) alg */
shost = scsi_host_lookup(host_no);
/* TODO: replace with a O(1) alg */
shost = scsi_host_lookup(host_no);
- if (
IS_ERR(shost)
) {
+ if (
!shost
) {
printk(KERN_ERR "Could not find host no %d\n", host_no);
return -EINVAL;
}
printk(KERN_ERR "Could not find host no %d\n", host_no);
return -EINVAL;
}
@@
-543,7
+550,7
@@
int scsi_tgt_kspace_tsk_mgmt(int host_no, u64 itn_id, u64 mid, int result)
dprintk("%d %d %llx\n", host_no, result, (unsigned long long) mid);
shost = scsi_host_lookup(host_no);
dprintk("%d %d %llx\n", host_no, result, (unsigned long long) mid);
shost = scsi_host_lookup(host_no);
- if (
IS_ERR(shost)
) {
+ if (
!shost
) {
printk(KERN_ERR "Could not find host no %d\n", host_no);
return err;
}
printk(KERN_ERR "Could not find host no %d\n", host_no);
return err;
}
@@
-596,7
+603,7
@@
int scsi_tgt_kspace_it_nexus_rsp(int host_no, u64 itn_id, int result)
dprintk("%d %d%llx\n", host_no, result, (unsigned long long)itn_id);
shost = scsi_host_lookup(host_no);
dprintk("%d %d%llx\n", host_no, result, (unsigned long long)itn_id);
shost = scsi_host_lookup(host_no);
- if (
IS_ERR(shost)
) {
+ if (
!shost
) {
printk(KERN_ERR "Could not find host no %d\n", host_no);
return err;
}
printk(KERN_ERR "Could not find host no %d\n", host_no);
return err;
}
@@
-616,9
+623,7
@@
static int __init scsi_tgt_init(void)
{
int err;
{
int err;
- scsi_tgt_cmd_cache = kmem_cache_create("scsi_tgt_cmd",
- sizeof(struct scsi_tgt_cmd),
- 0, 0, NULL);
+ scsi_tgt_cmd_cache = KMEM_CACHE(scsi_tgt_cmd, 0);
if (!scsi_tgt_cmd_cache)
return -ENOMEM;
if (!scsi_tgt_cmd_cache)
return -ENOMEM;