aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libiscsi.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2007-05-30 13:57:16 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2007-06-01 12:58:58 -0400
commitb2c6416736b847b91950bd43cc5153e11a1f83ee (patch)
tree7d7642d9b62b22aceedf8e86570783364ecd99d1 /drivers/scsi/libiscsi.c
parent857ae0bdb72999936a28ce621e38e2e288c485da (diff)
[SCSI] iscsi class, iscsi_tcp, ib_iser: add sysfs chap file
The attached patches add sysfs files for the chap settings to the iscsi transport class, iscsi_tcp and ib_iser. This is needed for software iscsi because there are times when iscsid can die and it will need to reread the values it was using. And it is needed by qla4xxx for basic management opertaions. This patch does not hook in qla4xxx yet, because I am not sure the mbx command to use. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: Roland Dreier <rdreier@cisco.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/libiscsi.c')
-rw-r--r--drivers/scsi/libiscsi.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 0a9c64e9ce8b..63981edf9ab9 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1461,6 +1461,10 @@ void iscsi_session_teardown(struct iscsi_cls_session *cls_session)
1461 iscsi_pool_free(&session->mgmtpool, (void**)session->mgmt_cmds); 1461 iscsi_pool_free(&session->mgmtpool, (void**)session->mgmt_cmds);
1462 iscsi_pool_free(&session->cmdpool, (void**)session->cmds); 1462 iscsi_pool_free(&session->cmdpool, (void**)session->cmds);
1463 1463
1464 kfree(session->password);
1465 kfree(session->password_in);
1466 kfree(session->username);
1467 kfree(session->username_in);
1464 kfree(session->targetname); 1468 kfree(session->targetname);
1465 kfree(session->hwaddress); 1469 kfree(session->hwaddress);
1466 kfree(session->initiatorname); 1470 kfree(session->initiatorname);
@@ -1869,6 +1873,30 @@ int iscsi_set_param(struct iscsi_cls_conn *cls_conn,
1869 case ISCSI_PARAM_EXP_STATSN: 1873 case ISCSI_PARAM_EXP_STATSN:
1870 sscanf(buf, "%u", &conn->exp_statsn); 1874 sscanf(buf, "%u", &conn->exp_statsn);
1871 break; 1875 break;
1876 case ISCSI_PARAM_USERNAME:
1877 kfree(session->username);
1878 session->username = kstrdup(buf, GFP_KERNEL);
1879 if (!session->username)
1880 return -ENOMEM;
1881 break;
1882 case ISCSI_PARAM_USERNAME_IN:
1883 kfree(session->username_in);
1884 session->username_in = kstrdup(buf, GFP_KERNEL);
1885 if (!session->username_in)
1886 return -ENOMEM;
1887 break;
1888 case ISCSI_PARAM_PASSWORD:
1889 kfree(session->password);
1890 session->password = kstrdup(buf, GFP_KERNEL);
1891 if (!session->password)
1892 return -ENOMEM;
1893 break;
1894 case ISCSI_PARAM_PASSWORD_IN:
1895 kfree(session->password_in);
1896 session->password_in = kstrdup(buf, GFP_KERNEL);
1897 if (!session->password_in)
1898 return -ENOMEM;
1899 break;
1872 case ISCSI_PARAM_TARGET_NAME: 1900 case ISCSI_PARAM_TARGET_NAME:
1873 /* this should not change between logins */ 1901 /* this should not change between logins */
1874 if (session->targetname) 1902 if (session->targetname)
@@ -1942,6 +1970,18 @@ int iscsi_session_get_param(struct iscsi_cls_session *cls_session,
1942 case ISCSI_PARAM_TPGT: 1970 case ISCSI_PARAM_TPGT:
1943 len = sprintf(buf, "%d\n", session->tpgt); 1971 len = sprintf(buf, "%d\n", session->tpgt);
1944 break; 1972 break;
1973 case ISCSI_PARAM_USERNAME:
1974 len = sprintf(buf, "%s\n", session->username);
1975 break;
1976 case ISCSI_PARAM_USERNAME_IN:
1977 len = sprintf(buf, "%s\n", session->username_in);
1978 break;
1979 case ISCSI_PARAM_PASSWORD:
1980 len = sprintf(buf, "%s\n", session->password);
1981 break;
1982 case ISCSI_PARAM_PASSWORD_IN:
1983 len = sprintf(buf, "%s\n", session->password_in);
1984 break;
1945 default: 1985 default:
1946 return -ENOSYS; 1986 return -ENOSYS;
1947 } 1987 }