[SCSI] libiscsi: Add local_ipaddr parameter in iscsi_conn struct
authorAdheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Fri, 22 Nov 2013 10:28:21 +0000 (05:28 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Fri, 20 Dec 2013 04:56:26 +0000 (20:56 -0800)
Add local_ipaddr param and support get/set operations on it.

Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/libiscsi.c
include/scsi/libiscsi.h

index e399561..4046241 100644 (file)
@@ -2945,6 +2945,7 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn)
        free_pages((unsigned long) conn->data,
                   get_order(ISCSI_DEF_MAX_RECV_SEG_LEN));
        kfree(conn->persistent_address);
+       kfree(conn->local_ipaddr);
        kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task,
                    sizeof(void*));
        if (session->leadconn == conn)
@@ -3269,6 +3270,8 @@ int iscsi_set_param(struct iscsi_cls_conn *cls_conn,
                sscanf(buf, "%d", &val);
                session->discovery_sess = !!val;
                break;
+       case ISCSI_PARAM_LOCAL_IPADDR:
+               return iscsi_switch_str_param(&conn->local_ipaddr, buf);
        default:
                return -ENOSYS;
        }
@@ -3542,6 +3545,9 @@ int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
        case ISCSI_PARAM_TCP_RECV_WSF:
                len = sprintf(buf, "%u\n", conn->tcp_recv_wsf);
                break;
+       case ISCSI_PARAM_LOCAL_IPADDR:
+               len = sprintf(buf, "%s\n", conn->local_ipaddr);
+               break;
        default:
                return -ENOSYS;
        }
index 6ac9e17..309f513 100644 (file)
@@ -231,6 +231,7 @@ struct iscsi_conn {
        uint8_t                 ipv6_traffic_class;
        uint8_t                 ipv6_flow_label;
        uint8_t                 is_fw_assigned_ipv6;
+       char                    *local_ipaddr;
 
        /* MIB-statistics */
        uint64_t                txdata_octets;