[SCSI] fix memory leak in initialization
[safe/jmp/linux-2.6] / drivers / scsi / scsi_tgt_lib.c
index 3117bb1..1030327 100644 (file)
@@ -387,7 +387,7 @@ static int scsi_map_user_pages(struct scsi_tgt_cmd *tcmd, struct scsi_cmnd *cmd,
         * we use REQ_TYPE_BLOCK_PC so scsi_init_io doesn't set the
         * length for us.
         */
-       cmd->sdb.length = rq->data_len;
+       cmd->sdb.length = blk_rq_bytes(rq);
 
        return 0;
 
@@ -460,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);
-       if (IS_ERR(shost)) {
+       if (!shost) {
                printk(KERN_ERR "Could not find host no %d\n", host_no);
                return -EINVAL;
        }
@@ -550,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);
-       if (IS_ERR(shost)) {
+       if (!shost) {
                printk(KERN_ERR "Could not find host no %d\n", host_no);
                return err;
        }
@@ -603,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);
-       if (IS_ERR(shost)) {
+       if (!shost) {
                printk(KERN_ERR "Could not find host no %d\n", host_no);
                return err;
        }