diff --git a/scst_local/scst_local.c b/scst_local/scst_local.c index df20874d2..34d9727e8 100644 --- a/scst_local/scst_local.c +++ b/scst_local/scst_local.c @@ -483,6 +483,19 @@ static const struct attribute *scst_local_tgt_attrs[] = { ** Session attributes **/ +static ssize_t host_no_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct scst_session *scst_sess = + container_of(kobj, struct scst_session, sess_kobj); + struct scst_local_sess *sess = scst_sess_get_tgt_priv(scst_sess); + struct Scsi_Host *host = sess->shost; + + return host ? snprintf(buf, PAGE_SIZE, "%u\n", host->host_no) : -EINVAL; +} + +static struct kobj_attribute scst_local_host_no_attr = __ATTR_RO(host_no); + static ssize_t scst_local_transport_id_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -571,6 +584,7 @@ static struct kobj_attribute scst_local_transport_id_attr = scst_local_transport_id_store); static const struct attribute *scst_local_sess_attrs[] = { + &scst_local_host_no_attr.attr, &scst_local_transport_id_attr.attr, NULL, };