Mercurial > unleashed > wips
changeset 10622:de30154fc5f5
6879696 panic happens when trying to offline fcoei port with mpxio enabled
author | Kelly Hu <kelly.hu@Sun.COM> |
---|---|
date | Wed, 23 Sep 2009 22:24:40 +0800 |
parents | a6ab13bfdd64 |
children | a08d4ae62796 |
files | usr/src/uts/common/io/fibre-channel/ulp/fcp.c |
diffstat | 1 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/fibre-channel/ulp/fcp.c Wed Sep 23 09:39:54 2009 -0400 +++ b/usr/src/uts/common/io/fibre-channel/ulp/fcp.c Wed Sep 23 22:24:40 2009 +0800 @@ -13407,6 +13407,7 @@ static void fcp_remove_child(struct fcp_lun *plun) { + int circ; ASSERT(MUTEX_HELD(&plun->lun_mutex)); if (fcp_is_child_present(plun, plun->lun_cip) == FC_SUCCESS) { @@ -13417,6 +13418,18 @@ mutex_exit(&plun->lun_mutex); mutex_exit(&plun->lun_tgt->tgt_mutex); mutex_exit(&plun->lun_tgt->tgt_port->port_mutex); + mdi_devi_enter( + plun->lun_tgt->tgt_port->port_dip, &circ); + mdi_hold_path(PIP(plun->lun_cip)); + mdi_devi_exit_phci( + plun->lun_tgt->tgt_port->port_dip, circ); + (void) mdi_pi_offline(PIP(plun->lun_cip), + NDI_DEVI_REMOVE); + mdi_devi_enter_phci( + plun->lun_tgt->tgt_port->port_dip, &circ); + mdi_rele_path(PIP(plun->lun_cip)); + mdi_devi_exit_phci( + plun->lun_tgt->tgt_port->port_dip, circ); FCP_TRACE(fcp_logq, plun->lun_tgt->tgt_port->port_instbuf, fcp_trace, FCP_BUF_LEVEL_3, 0,