]> err.no Git - linux-2.6/blobdiff - drivers/scsi/lpfc/lpfc_vport.c
Merge branch 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6
[linux-2.6] / drivers / scsi / lpfc / lpfc_vport.c
index 6feaf59b0b1b28eb962d886a5caec20bbff74a0a..109f89d9883021fca9ffb87f5f279f5734481440 100644 (file)
@@ -216,6 +216,7 @@ lpfc_vport_create(struct fc_vport *fc_vport, bool disable)
        int vpi;
        int rc = VPORT_ERROR;
        int status;
+       int size;
 
        if ((phba->sli_rev < 3) ||
                !(phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) {
@@ -278,7 +279,20 @@ lpfc_vport_create(struct fc_vport *fc_vport, bool disable)
 
        memcpy(vport->fc_portname.u.wwn, vport->fc_sparam.portName.u.wwn, 8);
        memcpy(vport->fc_nodename.u.wwn, vport->fc_sparam.nodeName.u.wwn, 8);
-
+       size = strnlen(fc_vport->symbolic_name, LPFC_VNAME_LEN);
+       if (size) {
+               vport->vname = kzalloc(size+1, GFP_KERNEL);
+               if (!vport->vname) {
+                       lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT,
+                                        "1814 Create VPORT failed. "
+                                        "vname allocation failed.\n");
+                       rc = VPORT_ERROR;
+                       lpfc_free_vpi(phba, vpi);
+                       destroy_port(vport);
+                       goto error_out;
+               }
+               memcpy(vport->vname, fc_vport->symbolic_name, size+1);
+       }
        if (fc_vport->node_name != 0)
                u64_to_wwn(fc_vport->node_name, vport->fc_nodename.u.wwn);
        if (fc_vport->port_name != 0)