aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2011-07-25 14:48:42 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-08-27 10:36:03 -0400
commit3128c6c73cdf3df92c3165bfb785ae50114d18bf (patch)
tree49af7993064b0140bda96c795a47fa336525d02c /drivers/infiniband
parented1086e041b4870313dd0c0755f4bbc3b62d0d08 (diff)
[SCSI] iscsi cls: sysfs group is_visible callout for conn attrs
The iscsi class currently does not support writable sysfs attrs for LLD sysfs settings. This patch converts the iscsi class and drivers to use the attribute container sysfs group and the sysfs group's is_visible callout to be able to support readable or writable sysfs attrs. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c38
1 files changed, 27 insertions, 11 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 9c61b9c2c597..c716722628cf 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -632,6 +632,31 @@ iscsi_iser_ep_disconnect(struct iscsi_endpoint *ep)
632 iser_conn_terminate(ib_conn); 632 iser_conn_terminate(ib_conn);
633} 633}
634 634
635static mode_t iser_attr_is_visible(int param_type, int param)
636{
637 switch (param_type) {
638 case ISCSI_PARAM:
639 switch (param) {
640 case ISCSI_PARAM_MAX_RECV_DLENGTH:
641 case ISCSI_PARAM_MAX_XMIT_DLENGTH:
642 case ISCSI_PARAM_HDRDGST_EN:
643 case ISCSI_PARAM_DATADGST_EN:
644 case ISCSI_PARAM_CONN_ADDRESS:
645 case ISCSI_PARAM_CONN_PORT:
646 case ISCSI_PARAM_EXP_STATSN:
647 case ISCSI_PARAM_PERSISTENT_ADDRESS:
648 case ISCSI_PARAM_PERSISTENT_PORT:
649 case ISCSI_PARAM_PING_TMO:
650 case ISCSI_PARAM_RECV_TMO:
651 return S_IRUGO;
652 default:
653 return 0;
654 }
655 }
656
657 return 0;
658}
659
635static struct scsi_host_template iscsi_iser_sht = { 660static struct scsi_host_template iscsi_iser_sht = {
636 .module = THIS_MODULE, 661 .module = THIS_MODULE,
637 .name = "iSCSI Initiator over iSER, v." DRV_VER, 662 .name = "iSCSI Initiator over iSER, v." DRV_VER,
@@ -653,28 +678,18 @@ static struct iscsi_transport iscsi_iser_transport = {
653 .owner = THIS_MODULE, 678 .owner = THIS_MODULE,
654 .name = "iser", 679 .name = "iser",
655 .caps = CAP_RECOVERY_L0 | CAP_MULTI_R2T, 680 .caps = CAP_RECOVERY_L0 | CAP_MULTI_R2T,
656 .param_mask = ISCSI_MAX_RECV_DLENGTH | 681 .param_mask = ISCSI_INITIAL_R2T_EN |
657 ISCSI_MAX_XMIT_DLENGTH |
658 ISCSI_HDRDGST_EN |
659 ISCSI_DATADGST_EN |
660 ISCSI_INITIAL_R2T_EN |
661 ISCSI_MAX_R2T | 682 ISCSI_MAX_R2T |
662 ISCSI_IMM_DATA_EN | 683 ISCSI_IMM_DATA_EN |
663 ISCSI_FIRST_BURST | 684 ISCSI_FIRST_BURST |
664 ISCSI_MAX_BURST | 685 ISCSI_MAX_BURST |
665 ISCSI_PDU_INORDER_EN | 686 ISCSI_PDU_INORDER_EN |
666 ISCSI_DATASEQ_INORDER_EN | 687 ISCSI_DATASEQ_INORDER_EN |
667 ISCSI_CONN_PORT |
668 ISCSI_CONN_ADDRESS |
669 ISCSI_EXP_STATSN |
670 ISCSI_PERSISTENT_PORT |
671 ISCSI_PERSISTENT_ADDRESS |
672 ISCSI_TARGET_NAME | ISCSI_TPGT | 688 ISCSI_TARGET_NAME | ISCSI_TPGT |
673 ISCSI_USERNAME | ISCSI_PASSWORD | 689 ISCSI_USERNAME | ISCSI_PASSWORD |
674 ISCSI_USERNAME_IN | ISCSI_PASSWORD_IN | 690 ISCSI_USERNAME_IN | ISCSI_PASSWORD_IN |
675 ISCSI_FAST_ABORT | ISCSI_ABORT_TMO | 691 ISCSI_FAST_ABORT | ISCSI_ABORT_TMO |
676 ISCSI_LU_RESET_TMO | ISCSI_TGT_RESET_TMO | 692 ISCSI_LU_RESET_TMO | ISCSI_TGT_RESET_TMO |
677 ISCSI_PING_TMO | ISCSI_RECV_TMO |
678 ISCSI_IFACE_NAME | ISCSI_INITIATOR_NAME, 693 ISCSI_IFACE_NAME | ISCSI_INITIATOR_NAME,
679 .host_param_mask = ISCSI_HOST_HWADDRESS | 694 .host_param_mask = ISCSI_HOST_HWADDRESS |
680 ISCSI_HOST_NETDEV_NAME | 695 ISCSI_HOST_NETDEV_NAME |
@@ -686,6 +701,7 @@ static struct iscsi_transport iscsi_iser_transport = {
686 .create_conn = iscsi_iser_conn_create, 701 .create_conn = iscsi_iser_conn_create,
687 .bind_conn = iscsi_iser_conn_bind, 702 .bind_conn = iscsi_iser_conn_bind,
688 .destroy_conn = iscsi_iser_conn_destroy, 703 .destroy_conn = iscsi_iser_conn_destroy,
704 .attr_is_visible = iser_attr_is_visible,
689 .set_param = iscsi_iser_set_param, 705 .set_param = iscsi_iser_set_param,
690 .get_conn_param = iscsi_conn_get_param, 706 .get_conn_param = iscsi_conn_get_param,
691 .get_ep_param = iscsi_iser_get_ep_param, 707 .get_ep_param = iscsi_iser_get_ep_param,