summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-06-25 07:10:51 +0000
committermav <mav@FreeBSD.org>2015-06-25 07:10:51 +0000
commit0aff133da563ccc9dba6c28050810a7b34cb5476 (patch)
tree014340866cf69b043368416a11027ab90401c9e2 /sys/cam
parent701d4d43cb176791acc362ed0bfa8dad92d9d11c (diff)
downloadFreeBSD-src-0aff133da563ccc9dba6c28050810a7b34cb5476.zip
FreeBSD-src-0aff133da563ccc9dba6c28050810a7b34cb5476.tar.gz
MFC r284627: Remove some dead and duplicate LUN enabling code.
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/ctl/ctl.c77
-rw-r--r--sys/cam/ctl/ctl_frontend.h4
2 files changed, 1 insertions, 80 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 47f0273..c56011a 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -4537,7 +4537,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun,
struct ctl_be_lun *const be_lun, struct ctl_id target_id)
{
struct ctl_lun *nlun, *lun;
- struct ctl_port *port;
struct scsi_vpd_id_descriptor *desc;
struct scsi_vpd_id_t10 *t10id;
const char *eui, *naa, *scsiname, *vendor, *value;
@@ -4767,24 +4766,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_softc, struct ctl_lun *ctl_lun,
mtx_unlock(&ctl_softc->ctl_lock);
lun->be_lun->lun_config_status(lun->be_lun->be_lun, CTL_LUN_CONFIG_OK);
-
- /*
- * Run through each registered FETD and bring it online if it isn't
- * already. Enable the target ID if it hasn't been enabled, and
- * enable this particular LUN.
- */
- STAILQ_FOREACH(port, &ctl_softc->port_list, links) {
- int retval;
-
- retval = port->lun_enable(port->targ_lun_arg, target_id,lun_number);
- if (retval != 0) {
- printf("ctl_alloc_lun: FETD %s port %d returned error "
- "%d for lun_enable on target %ju lun %d\n",
- port->port_name, port->targ_port, retval,
- (uintmax_t)target_id.id, lun_number);
- } else
- port->status |= CTL_PORT_STATUS_LUN_ONLINE;
- }
return (0);
}
@@ -4821,58 +4802,6 @@ ctl_free_lun(struct ctl_lun *lun)
softc->num_luns--;
/*
- * XXX KDM this scheme only works for a single target/multiple LUN
- * setup. It needs to be revamped for a multiple target scheme.
- *
- * XXX KDM this results in port->lun_disable() getting called twice,
- * once when ctl_disable_lun() is called, and a second time here.
- * We really need to re-think the LUN disable semantics. There
- * should probably be several steps/levels to LUN removal:
- * - disable
- * - invalidate
- * - free
- *
- * Right now we only have a disable method when communicating to
- * the front end ports, at least for individual LUNs.
- */
-#if 0
- STAILQ_FOREACH(port, &softc->port_list, links) {
- int retval;
-
- retval = port->lun_disable(port->targ_lun_arg, lun->target,
- lun->lun);
- if (retval != 0) {
- printf("ctl_free_lun: FETD %s port %d returned error "
- "%d for lun_disable on target %ju lun %jd\n",
- port->port_name, port->targ_port, retval,
- (uintmax_t)lun->target.id, (intmax_t)lun->lun);
- }
-
- if (STAILQ_FIRST(&softc->lun_list) == NULL) {
- port->status &= ~CTL_PORT_STATUS_LUN_ONLINE;
-
- retval = port->targ_disable(port->targ_lun_arg,lun->target);
- if (retval != 0) {
- printf("ctl_free_lun: FETD %s port %d "
- "returned error %d for targ_disable on "
- "target %ju\n", port->port_name,
- port->targ_port, retval,
- (uintmax_t)lun->target.id);
- } else
- port->status &= ~CTL_PORT_STATUS_TARG_ONLINE;
-
- if ((port->status & CTL_PORT_STATUS_TARG_ONLINE) != 0)
- continue;
-
-#if 0
- port->port_offline(port->onoff_arg);
- port->status &= ~CTL_PORT_STATUS_ONLINE;
-#endif
- }
- }
-#endif
-
- /*
* Tell the backend to free resources, if this LUN has a backend.
*/
atomic_subtract_int(&lun->be_lun->be->num_luns, 1);
@@ -4966,12 +4895,6 @@ ctl_enable_lun(struct ctl_be_lun *be_lun)
__func__, port->port_name, port->targ_port, retval,
(uintmax_t)lun->target.id, (intmax_t)lun->lun);
}
-#if 0
- else {
- /* NOTE: TODO: why does lun enable affect port status? */
- port->status |= CTL_PORT_STATUS_LUN_ONLINE;
- }
-#endif
}
mtx_unlock(&softc->ctl_lock);
diff --git a/sys/cam/ctl/ctl_frontend.h b/sys/cam/ctl/ctl_frontend.h
index f1cc1c4..5b9789f 100644
--- a/sys/cam/ctl/ctl_frontend.h
+++ b/sys/cam/ctl/ctl_frontend.h
@@ -41,9 +41,7 @@
typedef enum {
CTL_PORT_STATUS_NONE = 0x00,
- CTL_PORT_STATUS_ONLINE = 0x01,
- CTL_PORT_STATUS_TARG_ONLINE = 0x02,
- CTL_PORT_STATUS_LUN_ONLINE = 0x04
+ CTL_PORT_STATUS_ONLINE = 0x01
} ctl_port_status;
typedef int (*fe_init_t)(void);
OpenPOWER on IntegriCloud