changeset 10073:c7f0868fae05

6848081 During lun configuration, mpxio registers keys on luns that already have keys registered.
author Zach Kissel <Zachary.Kissel@Sun.COM>
date Mon, 13 Jul 2009 09:59:16 -0400
parents 6531554a3cb3
children 45e3367ab3f3
files usr/src/uts/common/os/sunmdi.c
diffstat 1 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/os/sunmdi.c	Mon Jul 13 00:29:09 2009 -0700
+++ b/usr/src/uts/common/os/sunmdi.c	Mon Jul 13 09:59:16 2009 -0400
@@ -6008,6 +6008,19 @@
 	mdi_pathinfo_t 	*next;
 	int		(*f)() = NULL;
 
+	/*
+	 * Check to make sure the path is not already in the
+	 * requested state. If it is just return the next path
+	 * as we have nothing to do here.
+	 */
+	if ((MDI_PI_IS_DISABLE(pip) && op == MDI_DISABLE_OP) ||
+	    (!MDI_PI_IS_DISABLE(pip) && op == MDI_ENABLE_OP)) {
+		MDI_PI_LOCK(pip);
+		next = (mdi_pathinfo_t *)MDI_PI(pip)->pi_phci_link;
+		MDI_PI_UNLOCK(pip);
+		return (next);
+	}
+
 	f = vh->vh_ops->vo_pi_state_change;
 
 	sync_flag = (flags << 8) & 0xf00;