Print this page
4051 Don't free mdi_pathinfo_t in mptsas when device(s) are retired.

*** 18,27 **** --- 18,28 ---- * * CDDL HEADER END */ /* * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014 Nexenta Systems Inc. All rights reserved. */ /* * Multipath driver interface (MDI) implementation; see mdi_impldefs.h for a * more detailed discussion of the overall mpxio architecture.
*** 3654,3681 **** rv = ndi_devi_online(cdip, 0); MDI_CLIENT_LOCK(ct); if ((rv != NDI_SUCCESS) && (MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_DEGRADED)) { - /* - * ndi_devi_online failed. - * Reset client flags to - * offline. - */ MDI_DEBUG(1, (MDI_WARN, cdip, "!ndi_devi_online failed " "error %x", rv)); - MDI_CLIENT_SET_OFFLINE(ct); } ! if (rv != NDI_SUCCESS) { ! /* Reset the path state */ ! MDI_PI_LOCK(pip); ! MDI_PI(pip)->pi_state = ! MDI_PI_OLD_STATE(pip); ! MDI_PI_UNLOCK(pip); } - } break; case MDI_CLIENT_STATE_FAILED: /* * This is the last path case for --- 3655,3670 ---- rv = ndi_devi_online(cdip, 0); MDI_CLIENT_LOCK(ct); if ((rv != NDI_SUCCESS) && (MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_DEGRADED)) { MDI_DEBUG(1, (MDI_WARN, cdip, "!ndi_devi_online failed " "error %x", rv)); } ! rv = NDI_SUCCESS; } break; case MDI_CLIENT_STATE_FAILED: /* * This is the last path case for