Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jun 2015 07:33:07 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r284627 - head/sys/cam/ctl
Message-ID:  <201506200733.t5K7X7Mh069023@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Sat Jun 20 07:33:06 2015
New Revision: 284627
URL: https://svnweb.freebsd.org/changeset/base/284627

Log:
  Remove some dead and duplicate LUN enabling code.

Modified:
  head/sys/cam/ctl/ctl.c
  head/sys/cam/ctl/ctl_frontend.h

Modified: head/sys/cam/ctl/ctl.c
==============================================================================
--- head/sys/cam/ctl/ctl.c	Sat Jun 20 05:40:35 2015	(r284626)
+++ head/sys/cam/ctl/ctl.c	Sat Jun 20 07:33:06 2015	(r284627)
@@ -4535,7 +4535,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft
 	      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;
@@ -4765,24 +4764,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft
 	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);
 }
 
@@ -4819,58 +4800,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);
@@ -4964,12 +4893,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);

Modified: head/sys/cam/ctl/ctl_frontend.h
==============================================================================
--- head/sys/cam/ctl/ctl_frontend.h	Sat Jun 20 05:40:35 2015	(r284626)
+++ head/sys/cam/ctl/ctl_frontend.h	Sat Jun 20 07:33:06 2015	(r284627)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506200733.t5K7X7Mh069023>