]> err.no Git - linux-2.6/blobdiff - drivers/s390/scsi/zfcp_aux.c
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney...
[linux-2.6] / drivers / s390 / scsi / zfcp_aux.c
index 821cde65e3694ecc3ab6f68cb30c168c276581cf..90aa53fc4f3e40cfb4fadee0e7f72e176ec45265 100644 (file)
@@ -259,21 +259,21 @@ zfcp_module_init(void)
        size = sizeof(struct zfcp_fsf_req_qtcb);
        align = calc_alignment(size);
        zfcp_data.fsf_req_qtcb_cache =
-               kmem_cache_create("zfcp_fsf", size, align, 0, NULL, NULL);
+               kmem_cache_create("zfcp_fsf", size, align, 0, NULL);
        if (!zfcp_data.fsf_req_qtcb_cache)
                goto out;
 
        size = sizeof(struct fsf_status_read_buffer);
        align = calc_alignment(size);
        zfcp_data.sr_buffer_cache =
-               kmem_cache_create("zfcp_sr", size, align, 0, NULL, NULL);
+               kmem_cache_create("zfcp_sr", size, align, 0, NULL);
        if (!zfcp_data.sr_buffer_cache)
                goto out_sr_cache;
 
        size = sizeof(struct zfcp_gid_pn_data);
        align = calc_alignment(size);
        zfcp_data.gid_pn_cache =
-               kmem_cache_create("zfcp_gid", size, align, 0, NULL, NULL);
+               kmem_cache_create("zfcp_gid", size, align, 0, NULL);
        if (!zfcp_data.gid_pn_cache)
                goto out_gid_cache;
 
@@ -815,9 +815,7 @@ zfcp_get_adapter_by_busid(char *bus_id)
 struct zfcp_unit *
 zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun)
 {
-       struct zfcp_unit *unit, *tmp_unit;
-       unsigned int scsi_lun;
-       int found;
+       struct zfcp_unit *unit;
 
        /*
         * check that there is no unit with this FCP_LUN already in list
@@ -863,22 +861,10 @@ zfcp_unit_enqueue(struct zfcp_port *port, fcp_lun_t fcp_lun)
        }
 
        zfcp_unit_get(unit);
+       unit->scsi_lun = scsilun_to_int((struct scsi_lun *)&unit->fcp_lun);
 
-       scsi_lun = 0;
-       found = 0;
        write_lock_irq(&zfcp_data.config_lock);
-       list_for_each_entry(tmp_unit, &port->unit_list_head, list) {
-               if (tmp_unit->scsi_lun != scsi_lun) {
-                       found = 1;
-                       break;
-               }
-               scsi_lun++;
-       }
-       unit->scsi_lun = scsi_lun;
-       if (found)
-               list_add_tail(&unit->list, &tmp_unit->list);
-       else
-               list_add_tail(&unit->list, &port->unit_list_head);
+       list_add_tail(&unit->list, &port->unit_list_head);
        atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &unit->status);
        atomic_set_mask(ZFCP_STATUS_COMMON_RUNNING, &unit->status);
        write_unlock_irq(&zfcp_data.config_lock);
@@ -1517,7 +1503,7 @@ zfcp_gid_pn_buffers_alloc(struct zfcp_gid_pn_data **gid_pn, mempool_t *pool)
                        data->ct.pool = pool;
                }
        } else {
-               data = kmalloc(sizeof(struct zfcp_gid_pn_data), GFP_ATOMIC);
+               data = kmem_cache_alloc(zfcp_data.gid_pn_cache, GFP_ATOMIC);
        }
 
         if (NULL == data)
@@ -1540,15 +1526,12 @@ zfcp_gid_pn_buffers_alloc(struct zfcp_gid_pn_data **gid_pn, mempool_t *pool)
  * zfcp_gid_pn_buffers_free - free buffers for GID_PN nameserver request
  * @gid_pn: pointer to struct zfcp_gid_pn_data which has to be freed
  */
-static void
-zfcp_gid_pn_buffers_free(struct zfcp_gid_pn_data *gid_pn)
+static void zfcp_gid_pn_buffers_free(struct zfcp_gid_pn_data *gid_pn)
 {
-        if ((gid_pn->ct.pool != 0))
+       if (gid_pn->ct.pool)
                mempool_free(gid_pn, gid_pn->ct.pool);
        else
-                kfree(gid_pn);
-
-       return;
+               kmem_cache_free(zfcp_data.gid_pn_cache, gid_pn);
 }
 
 /**