[SCSI] qla2xxx: Add support for system hostname FC transport attribute.

The system hostname will be used during a subsequent FDMI registration
with the fabric.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by Andrew Vasquez and committed by James Bottomley a740a3f0 1620f7c2

+25
+10
drivers/scsi/qla2xxx/qla_attr.c
··· 857 857 qla2x00_get_sym_node_name(ha, fc_host_symbolic_name(shost)); 858 858 } 859 859 860 + static void 861 + qla2x00_set_host_system_hostname(struct Scsi_Host *shost) 862 + { 863 + scsi_qla_host_t *ha = to_qla_host(shost); 864 + 865 + set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags); 866 + } 867 + 860 868 struct fc_function_template qla2xxx_transport_functions = { 861 869 862 870 .show_host_node_name = 1, ··· 879 871 .show_host_port_type = 1, 880 872 .get_host_symbolic_name = qla2x00_get_host_symbolic_name, 881 873 .show_host_symbolic_name = 1, 874 + .set_host_system_hostname = qla2x00_set_host_system_hostname, 875 + .show_host_system_hostname = 1, 882 876 883 877 .dd_fcrport_size = sizeof(struct fc_port *), 884 878 .show_rport_supported_classes = 1,
+15
drivers/scsi/qla2xxx/qla_gs.c
··· 1580 1580 DEBUG13(printk("%s(%ld): OS_DEVICE_NAME=%s.\n", __func__, ha->host_no, 1581 1581 eiter->a.os_dev_name)); 1582 1582 1583 + /* Hostname. */ 1584 + if (strlen(fc_host_system_hostname(ha->host))) { 1585 + eiter = (struct ct_fdmi_port_attr *) (entries + size); 1586 + eiter->type = __constant_cpu_to_be16(FDMI_PORT_HOST_NAME); 1587 + snprintf(eiter->a.host_name, sizeof(eiter->a.host_name), 1588 + "%s", fc_host_system_hostname(ha->host)); 1589 + alen = strlen(eiter->a.host_name); 1590 + alen += (alen & 3) ? (4 - (alen & 3)) : 4; 1591 + eiter->len = cpu_to_be16(4 + alen); 1592 + size += 4 + alen; 1593 + 1594 + DEBUG13(printk("%s(%ld): HOSTNAME=%s.\n", __func__, 1595 + ha->host_no, eiter->a.host_name)); 1596 + } 1597 + 1583 1598 /* Update MS request size. */ 1584 1599 qla2x00_update_ms_fdmi_iocb(ha, size + 16); 1585 1600