diff options
Diffstat (limited to 'usr/src/uts/common/os/sunmdi.c')
-rw-r--r-- | usr/src/uts/common/os/sunmdi.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/usr/src/uts/common/os/sunmdi.c b/usr/src/uts/common/os/sunmdi.c index 0905a0852b..0cdfd30392 100644 --- a/usr/src/uts/common/os/sunmdi.c +++ b/usr/src/uts/common/os/sunmdi.c @@ -3245,13 +3245,13 @@ mdi_pi_free(mdi_pathinfo_t *pip, int flags) MDI_CLIENT_LOCK(ct); MDI_CLIENT_CLEAR_PATH_FREE_IN_PROGRESS(ct); + rv = MDI_SUCCESS; if (!MDI_PI_IS_INITING(pip)) { f = vh->vh_ops->vo_pi_uninit; if (f != NULL) { rv = (*f)(vh->vh_dip, pip, 0); } - } else - rv = MDI_SUCCESS; + } /* * If vo_pi_uninit() completed successfully. @@ -3895,6 +3895,7 @@ i_mdi_pi_offline(mdi_pathinfo_t *pip, int flags) ASSERT(vh->vh_ops); f = vh->vh_ops->vo_pi_state_change; + rv = MDI_SUCCESS; if (f != NULL) { MDI_PI_UNLOCK(pip); if ((rv = (*f)(vdip, pip, MDI_PATHINFO_STATE_OFFLINE, 0, @@ -3996,9 +3997,9 @@ i_mdi_pi_online(mdi_pathinfo_t *pip, int flags) MDI_PI_SET_ONLINING(pip) MDI_PI_UNLOCK(pip); f = vh->vh_ops->vo_pi_state_change; + rv = MDI_SUCCESS; if (f != NULL) - rv = (*f)(vh->vh_dip, pip, MDI_PATHINFO_STATE_ONLINE, 0, - flags); + rv = (*f)(vh->vh_dip, pip, MDI_PATHINFO_STATE_ONLINE, 0, flags); MDI_CLIENT_LOCK(ct); MDI_PI_LOCK(pip); cv_broadcast(&MDI_PI(pip)->pi_state_cv); @@ -4006,7 +4007,6 @@ i_mdi_pi_online(mdi_pathinfo_t *pip, int flags) if (rv == MDI_SUCCESS) { dev_info_t *cdip = ct->ct_dip; - rv = MDI_SUCCESS; i_mdi_client_update_state(ct); if (MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_OPTIMAL || MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_DEGRADED) { @@ -6300,6 +6300,7 @@ i_mdi_enable_disable_path(mdi_pathinfo_t *pip, mdi_vhci_t *vh, int flags, * Do a callback into the mdi consumer to let it * know that path is about to get enabled/disabled. */ + rv = MDI_SUCCESS; if (f != NULL) { rv = (*f)(vh->vh_dip, pip, 0, MDI_PI_EXT_STATE(pip), |