[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>
This commit is contained in:
committed by
James Bottomley
parent
857ae0bdb7
commit
b2c6416736
@@ -30,7 +30,7 @@
|
||||
#include <scsi/scsi_transport_iscsi.h>
|
||||
#include <scsi/iscsi_if.h>
|
||||
|
||||
#define ISCSI_SESSION_ATTRS 11
|
||||
#define ISCSI_SESSION_ATTRS 15
|
||||
#define ISCSI_CONN_ATTRS 11
|
||||
#define ISCSI_HOST_ATTRS 2
|
||||
#define ISCSI_TRANSPORT_VERSION "2.0-724"
|
||||
@@ -1196,30 +1196,37 @@ iscsi_conn_attr(address, ISCSI_PARAM_CONN_ADDRESS);
|
||||
/*
|
||||
* iSCSI session attrs
|
||||
*/
|
||||
#define iscsi_session_attr_show(param) \
|
||||
#define iscsi_session_attr_show(param, perm) \
|
||||
static ssize_t \
|
||||
show_session_param_##param(struct class_device *cdev, char *buf) \
|
||||
{ \
|
||||
struct iscsi_cls_session *session = iscsi_cdev_to_session(cdev); \
|
||||
struct iscsi_transport *t = session->transport; \
|
||||
\
|
||||
if (perm && !capable(CAP_SYS_ADMIN)) \
|
||||
return -EACCES; \
|
||||
return t->get_session_param(session, param, buf); \
|
||||
}
|
||||
|
||||
#define iscsi_session_attr(field, param) \
|
||||
iscsi_session_attr_show(param) \
|
||||
#define iscsi_session_attr(field, param, perm) \
|
||||
iscsi_session_attr_show(param, perm) \
|
||||
static ISCSI_CLASS_ATTR(sess, field, S_IRUGO, show_session_param_##param, \
|
||||
NULL);
|
||||
|
||||
iscsi_session_attr(targetname, ISCSI_PARAM_TARGET_NAME);
|
||||
iscsi_session_attr(initial_r2t, ISCSI_PARAM_INITIAL_R2T_EN);
|
||||
iscsi_session_attr(max_outstanding_r2t, ISCSI_PARAM_MAX_R2T);
|
||||
iscsi_session_attr(immediate_data, ISCSI_PARAM_IMM_DATA_EN);
|
||||
iscsi_session_attr(first_burst_len, ISCSI_PARAM_FIRST_BURST);
|
||||
iscsi_session_attr(max_burst_len, ISCSI_PARAM_MAX_BURST);
|
||||
iscsi_session_attr(data_pdu_in_order, ISCSI_PARAM_PDU_INORDER_EN);
|
||||
iscsi_session_attr(data_seq_in_order, ISCSI_PARAM_DATASEQ_INORDER_EN);
|
||||
iscsi_session_attr(erl, ISCSI_PARAM_ERL);
|
||||
iscsi_session_attr(tpgt, ISCSI_PARAM_TPGT);
|
||||
iscsi_session_attr(targetname, ISCSI_PARAM_TARGET_NAME, 0);
|
||||
iscsi_session_attr(initial_r2t, ISCSI_PARAM_INITIAL_R2T_EN, 0);
|
||||
iscsi_session_attr(max_outstanding_r2t, ISCSI_PARAM_MAX_R2T, 0);
|
||||
iscsi_session_attr(immediate_data, ISCSI_PARAM_IMM_DATA_EN, 0);
|
||||
iscsi_session_attr(first_burst_len, ISCSI_PARAM_FIRST_BURST, 0);
|
||||
iscsi_session_attr(max_burst_len, ISCSI_PARAM_MAX_BURST, 0);
|
||||
iscsi_session_attr(data_pdu_in_order, ISCSI_PARAM_PDU_INORDER_EN, 0);
|
||||
iscsi_session_attr(data_seq_in_order, ISCSI_PARAM_DATASEQ_INORDER_EN, 0);
|
||||
iscsi_session_attr(erl, ISCSI_PARAM_ERL, 0);
|
||||
iscsi_session_attr(tpgt, ISCSI_PARAM_TPGT, 0);
|
||||
iscsi_session_attr(username, ISCSI_PARAM_USERNAME, 1);
|
||||
iscsi_session_attr(username_in, ISCSI_PARAM_USERNAME_IN, 1);
|
||||
iscsi_session_attr(password, ISCSI_PARAM_PASSWORD, 1);
|
||||
iscsi_session_attr(password_in, ISCSI_PARAM_PASSWORD_IN, 1);
|
||||
|
||||
#define iscsi_priv_session_attr_show(field, format) \
|
||||
static ssize_t \
|
||||
@@ -1433,6 +1440,10 @@ iscsi_register_transport(struct iscsi_transport *tt)
|
||||
SETUP_SESSION_RD_ATTR(erl, ISCSI_ERL);
|
||||
SETUP_SESSION_RD_ATTR(targetname, ISCSI_TARGET_NAME);
|
||||
SETUP_SESSION_RD_ATTR(tpgt, ISCSI_TPGT);
|
||||
SETUP_SESSION_RD_ATTR(password, ISCSI_USERNAME);
|
||||
SETUP_SESSION_RD_ATTR(password_in, ISCSI_USERNAME_IN);
|
||||
SETUP_SESSION_RD_ATTR(username, ISCSI_PASSWORD);
|
||||
SETUP_SESSION_RD_ATTR(username_in, ISCSI_PASSWORD_IN);
|
||||
SETUP_PRIV_SESSION_RD_ATTR(recovery_tmo);
|
||||
|
||||
BUG_ON(count > ISCSI_SESSION_ATTRS);
|
||||
|
Reference in New Issue
Block a user